From e71f5ac6630686f3bd92817b401ed8d88e121f6d Mon Sep 17 00:00:00 2001 From: Niklas Date: Wed, 6 Jul 2011 16:56:16 +0200 Subject: added the two tryout with a qt LogReceiver and a c code client --- workspace/LogWriter/LogWriter | Bin 0 -> 30747 bytes workspace/LogWriter/LogWriter.pro | 10 ++++ workspace/LogWriter/logwriter.cpp | 97 ++++++++++++++++++++++++++++++++++++++ workspace/LogWriter/logwriter.h | 47 ++++++++++++++++++ workspace/LogWriter/logwriter.ui | 19 ++++++++ workspace/LogWriter/main.cpp | 12 +++++ 6 files changed, 185 insertions(+) create mode 100755 workspace/LogWriter/LogWriter create mode 100644 workspace/LogWriter/LogWriter.pro create mode 100644 workspace/LogWriter/logwriter.cpp create mode 100644 workspace/LogWriter/logwriter.h create mode 100644 workspace/LogWriter/logwriter.ui create mode 100644 workspace/LogWriter/main.cpp (limited to 'workspace/LogWriter') diff --git a/workspace/LogWriter/LogWriter b/workspace/LogWriter/LogWriter new file mode 100755 index 0000000..bfcb726 Binary files /dev/null and b/workspace/LogWriter/LogWriter 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 +#include +#include +#include +#include +#include + +#include +#include + +#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 +#include +#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 @@ + + LogWriterClass + + + + 0 + 0 + 400 + 300 + + + + LogWriter + + + + + + 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 +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + LogWriter w; + w.show(); + return a.exec(); +} -- cgit v1.2.3-55-g7522