summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas2011-07-06 16:56:16 +0200
committerNiklas2011-07-06 16:56:16 +0200
commite71f5ac6630686f3bd92817b401ed8d88e121f6d (patch)
tree13f6a33a630f61aa0b259c0b302b8ae203058bc0
parentnew funtions for the networkDiscovery class. (diff)
downloadfbgui-e71f5ac6630686f3bd92817b401ed8d88e121f6d.tar.gz
fbgui-e71f5ac6630686f3bd92817b401ed8d88e121f6d.tar.xz
fbgui-e71f5ac6630686f3bd92817b401ed8d88e121f6d.zip
added the two tryout with a qt LogReceiver and a c code client
-rwxr-xr-xworkspace/LogReceiver/LogReceiverbin0 -> 30954 bytes
-rw-r--r--workspace/LogReceiver/LogReceiver.pro10
-rw-r--r--workspace/LogReceiver/logreceiver.cpp70
-rw-r--r--workspace/LogReceiver/logreceiver.h34
-rw-r--r--workspace/LogReceiver/logreceiver.ui19
-rw-r--r--workspace/LogReceiver/main.cpp12
-rwxr-xr-xworkspace/LogWriter/LogWriterbin0 -> 30747 bytes
-rw-r--r--workspace/LogWriter/LogWriter.pro10
-rw-r--r--workspace/LogWriter/logwriter.cpp97
-rw-r--r--workspace/LogWriter/logwriter.h47
-rw-r--r--workspace/LogWriter/logwriter.ui19
-rw-r--r--workspace/LogWriter/main.cpp12
12 files changed, 330 insertions, 0 deletions
diff --git a/workspace/LogReceiver/LogReceiver b/workspace/LogReceiver/LogReceiver
new file mode 100755
index 0000000..16bcf4b
--- /dev/null
+++ b/workspace/LogReceiver/LogReceiver
Binary files differ
diff --git a/workspace/LogReceiver/LogReceiver.pro b/workspace/LogReceiver/LogReceiver.pro
new file mode 100644
index 0000000..3a2d3f9
--- /dev/null
+++ b/workspace/LogReceiver/LogReceiver.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = LogReceiver
+
+QT += core gui network
+
+HEADERS += logreceiver.h
+SOURCES += main.cpp \
+ logreceiver.cpp
+FORMS += logreceiver.ui
+RESOURCES +=
diff --git a/workspace/LogReceiver/logreceiver.cpp b/workspace/LogReceiver/logreceiver.cpp
new file mode 100644
index 0000000..9bca304
--- /dev/null
+++ b/workspace/LogReceiver/logreceiver.cpp
@@ -0,0 +1,70 @@
+ #include <QtGui>
+ #include <QtNetwork>
+
+ #include <stdlib.h>
+
+ #include "logreceiver.h"
+ #include <qlocalserver.h>
+ #include <qlocalsocket.h>
+
+
+LogReceiver::LogReceiver(QWidget *parent) :
+ QDialog(parent) {
+ ui.setupUi(this);
+
+ statusLabel = new QLabel;
+ quitButton = new QPushButton(tr("Quit"));
+ quitButton->setAutoDefault(false);
+
+ server = new QLocalServer(this);
+ if (!server->listen("/var/tmp/qt_c_socket_test")) {
+ QMessageBox::critical(this, tr("LogReceiver"), tr(
+ "Unable to start the server: %1.") .arg(server->errorString()));
+ close();
+ return;
+ }
+
+ statusLabel->setText(tr("The server is running.\n"
+ "Run the C Client example now."));
+
+ connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));
+ connect(server, SIGNAL(newConnection()), this, SLOT(handleNewConnection()));
+
+ QHBoxLayout *buttonLayout = new QHBoxLayout;
+ buttonLayout->addStretch(1);
+ buttonLayout->addWidget(quitButton);
+ buttonLayout->addStretch(1);
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(statusLabel);
+ mainLayout->addLayout(buttonLayout);
+ setLayout(mainLayout);
+
+ setWindowTitle(tr("Fortune Server"));
+}
+
+LogReceiver::~LogReceiver() {
+
+}
+
+
+ void LogReceiver::handleNewConnection()
+ {
+ qDebug() << "New Connection arrived";
+
+ clientSocket = server->nextPendingConnection();
+ connect(clientSocket, SIGNAL(disconnected()),
+ clientSocket, SLOT(deleteLater()));
+ connect(clientSocket, SIGNAL(readyRead()), this, SLOT(handleNewInput()));
+ }
+
+ void LogReceiver::handleNewInput() {
+
+ QByteArray data = clientSocket->readAll();
+
+ QString logMsg(data);
+ qDebug() << logMsg;
+
+ statusLabel->setText(logMsg);
+}
+
diff --git a/workspace/LogReceiver/logreceiver.h b/workspace/LogReceiver/logreceiver.h
new file mode 100644
index 0000000..6b94eab
--- /dev/null
+++ b/workspace/LogReceiver/logreceiver.h
@@ -0,0 +1,34 @@
+#ifndef LOGRECEIVER_H
+#define LOGRECEIVER_H
+
+#include <QDialog>
+#include <QtGui/QWidget>
+#include "ui_logreceiver.h"
+
+class QLabel;
+class QPushButton;
+class QLocalServer;
+class QLocalSocket;
+
+class LogReceiver: public QDialog {
+Q_OBJECT
+
+public:
+ LogReceiver(QWidget *parent = 0);
+ ~LogReceiver();
+
+private slots:
+ void handleNewConnection();
+ void handleNewInput();
+
+private:
+ Ui::LogReceiverClass ui;
+ QLabel *statusLabel;
+ QPushButton *quitButton;
+ QLocalServer *server;
+ QStringList fortunes;
+ QLocalSocket *clientSocket;
+ quint16 blockSize;
+};
+
+#endif // LOGRECEIVER_H
diff --git a/workspace/LogReceiver/logreceiver.ui b/workspace/LogReceiver/logreceiver.ui
new file mode 100644
index 0000000..9143194
--- /dev/null
+++ b/workspace/LogReceiver/logreceiver.ui
@@ -0,0 +1,19 @@
+<ui version="4.0" >
+ <class>LogReceiverClass</class>
+ <widget class="QWidget" name="LogReceiverClass" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>LogReceiver</string>
+ </property>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
diff --git a/workspace/LogReceiver/main.cpp b/workspace/LogReceiver/main.cpp
new file mode 100644
index 0000000..e545906
--- /dev/null
+++ b/workspace/LogReceiver/main.cpp
@@ -0,0 +1,12 @@
+#include "logreceiver.h"
+
+#include <QtGui>
+#include <QApplication>
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ LogReceiver w;
+ w.show();
+ return a.exec();
+}
diff --git a/workspace/LogWriter/LogWriter b/workspace/LogWriter/LogWriter
new file mode 100755
index 0000000..bfcb726
--- /dev/null
+++ b/workspace/LogWriter/LogWriter
Binary files differ
diff --git a/workspace/LogWriter/LogWriter.pro b/workspace/LogWriter/LogWriter.pro
new file mode 100644
index 0000000..112fd84
--- /dev/null
+++ b/workspace/LogWriter/LogWriter.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+TARGET = LogWriter
+
+QT += core gui network
+
+HEADERS += logwriter.h
+SOURCES += main.cpp \
+ logwriter.cpp
+FORMS += logwriter.ui
+RESOURCES +=
diff --git a/workspace/LogWriter/logwriter.cpp b/workspace/LogWriter/logwriter.cpp
new file mode 100644
index 0000000..53a4023
--- /dev/null
+++ b/workspace/LogWriter/logwriter.cpp
@@ -0,0 +1,97 @@
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <QtGui>
+#include <QtNetwork>
+
+#include "logwriter.h"
+
+LogWriter::LogWriter(QWidget *parent) :
+ QDialog(parent) {
+ hostLabel = new QLabel(tr("Message:"));
+ hostLineEdit = new QLineEdit("fortune");
+
+ serverName = "/var/tmp/qt_c_socket_test";
+
+ hostLabel->setBuddy(hostLineEdit);
+
+ statusLabel = new QLabel(tr("This examples requires that you run the "
+ "LogReceiver example as well."));
+
+ connectToLogReceiver = new QPushButton(tr("Connect"));
+ connectToLogReceiver->setDefault(true);
+
+ quitButton = new QPushButton(tr("Quit"));
+
+ writeButton = new QPushButton(tr("Write"));
+
+ buttonBox = new QDialogButtonBox;
+ buttonBox->addButton(connectToLogReceiver, QDialogButtonBox::ActionRole);
+ buttonBox->addButton(quitButton, QDialogButtonBox::RejectRole);
+ buttonBox->addButton(writeButton, QDialogButtonBox::ActionRole);
+
+ connect(hostLineEdit, SIGNAL(textChanged(QString)), this,
+ SLOT(enableWriteButton()));
+ connect(connectToLogReceiver, SIGNAL(clicked()), this,
+ SLOT(requestNewFortune()));
+ connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));
+ connect(writeButton, SIGNAL(clicked()), this, SLOT(writeToLogReceiver()));
+
+ QGridLayout *mainLayout = new QGridLayout;
+ mainLayout->addWidget(hostLabel, 0, 0);
+ mainLayout->addWidget(hostLineEdit, 0, 1);
+ mainLayout->addWidget(statusLabel, 2, 0, 1, 2);
+ mainLayout->addWidget(buttonBox, 3, 0, 1, 2);
+ setLayout(mainLayout);
+
+ setWindowTitle(tr("Fortune Client"));
+ hostLineEdit->setFocus();
+}
+
+LogWriter::~LogWriter() {
+
+}
+
+void LogWriter::requestNewFortune() {
+ struct sockaddr_un serv_addr;
+
+ connectToLogReceiver->setEnabled(false);
+
+
+ sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
+ if (sockfd < 0)
+ qDebug() << "ERROR opening socket" << strerror(errno);
+ serv_addr.sun_family = AF_UNIX;
+ strcpy(serv_addr.sun_path, "/var/tmp/qt_c_socket_test");
+
+
+ if (::connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
+ qDebug() << "ERROR connecting" << strerror(errno);
+}
+
+void LogWriter::readFortune() {
+
+}
+
+void LogWriter::displayError(QLocalSocket::LocalSocketError socketError) {
+
+}
+
+void LogWriter::enableWriteButton() {
+ writeButton->setEnabled(!hostLineEdit->text().isEmpty());
+}
+
+void LogWriter::writeToLogReceiver() {
+
+ //char buffer[256];
+ char *b = "test";
+ qDebug() << strlen(b);
+ int n = ::write(sockfd,b,strlen(b));
+ if (n < 0)
+ qDebug() <<"ERROR writing to socket";
+
+}
diff --git a/workspace/LogWriter/logwriter.h b/workspace/LogWriter/logwriter.h
new file mode 100644
index 0000000..1646433
--- /dev/null
+++ b/workspace/LogWriter/logwriter.h
@@ -0,0 +1,47 @@
+#ifndef LOGWRITER_H
+#define LOGWRITER_H
+
+#include <QtGui/QDialog>
+#include <qlocalsocket.h>
+#include "ui_logwriter.h"
+
+class QDialogButtonBox;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QLocalSocket;
+
+class LogWriter: public QDialog {
+Q_OBJECT
+
+public:
+ LogWriter(QWidget *parent = 0);
+ ~LogWriter();
+
+private slots:
+ void requestNewFortune();
+ void readFortune();
+ void displayError(QLocalSocket::LocalSocketError socketError);
+ void enableWriteButton();
+ void writeToLogReceiver();
+
+private:
+ Ui::LogWriterClass ui;
+ QLabel *hostLabel;
+ QLineEdit *hostLineEdit;
+ QLabel *statusLabel;
+ QPushButton *connectToLogReceiver;
+ QPushButton *quitButton;
+ QPushButton *writeButton;
+ QDialogButtonBox *buttonBox;
+
+ QString currentFortune;
+ quint16 blockSize;
+ QString serverName;
+
+ int sockfd;
+
+};
+
+#endif // LOGWRITER_H
+
diff --git a/workspace/LogWriter/logwriter.ui b/workspace/LogWriter/logwriter.ui
new file mode 100644
index 0000000..aebeb33
--- /dev/null
+++ b/workspace/LogWriter/logwriter.ui
@@ -0,0 +1,19 @@
+<ui version="4.0" >
+ <class>LogWriterClass</class>
+ <widget class="QDialog" name="LogWriterClass" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>LogWriter</string>
+ </property>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
diff --git a/workspace/LogWriter/main.cpp b/workspace/LogWriter/main.cpp
new file mode 100644
index 0000000..5695d76
--- /dev/null
+++ b/workspace/LogWriter/main.cpp
@@ -0,0 +1,12 @@
+#include "logwriter.h"
+
+#include <QtGui>
+#include <QApplication>
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ LogWriter w;
+ w.show();
+ return a.exec();
+}