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.cpp | 97 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 workspace/LogWriter/logwriter.cpp (limited to 'workspace/LogWriter/logwriter.cpp') 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"; + +} -- cgit v1.2.3-55-g7522