[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Can not connect to a KNetwork::KServerSocket
From:       Erik <sigra () home ! se>
Date:       2006-09-26 22:30:01
Message-ID: 4519A9E9.2040807 () home ! se
[Download RAW message or body]

I have KDE 3.5.4 and try to use KNetwork::KServerSocket, but it seems 
like I can not connect to it. I try "telnet localhost 5678" (correct???) 
but nothing happens. I created the application from a template in 
KDevelop and called it sockettest. Here are the files that I modified:


["sockettest.cpp" (text/x-c++src)]

#include "sockettest.h"

#include <qlabel.h>

#include <kbufferedsocket.h>
#include <kmainwindow.h>
#include <klocale.h>

sockettest::sockettest() :
KDockMainWindow(0, "sockettest"),
text_view(QString::null, QString::null, 0),
client(0)
{
	text_view.setReadOnly(true);
	KDockWidget & textViewDockWidget =
		*createDockWidget(QString(), QPixmap(), 0, QString(), QString());
	textViewDockWidget.setWidget(&text_view);
	setView(&textViewDockWidget);
	setMainDockWidget(&textViewDockWidget);
	listenForConnection();
}

void sockettest::listenForConnection() {
	QColor text_view_message_color = QColor(255, 0, 0);
	for (unsigned int i = 5678; i <= 5679; ++i) {
		server.setFamily(KNetwork::KResolver::InetFamily);
		server.setAddress(QString::number(i));
		QString text_view_message;
		if (server.listen() and server.error() == KNetwork::KSocketBase::NoError) {
			i = 6000; //  Do not run the loop another time.
			connect
				(&server, SIGNAL(readyAccept()),
				 this,    SLOT  (acceptConnection()));
			text_view_message_color = QColor(0, 0, 0);
			text_view_message =
				i18n("Listening for connection on address %1.")
				.arg(server.localAddress().toString());
		} else {
			text_view_message =
				i18n("Listening for connection on port %1 failed: %2.")
				.arg(i).arg(server.errorString());
			server.close();
		}
		text_view.setColor(text_view_message_color);
		text_view.append(text_view_message);
	}
}

void sockettest::acceptConnection() {
	text_view.setColor(QColor(0, 0, 0));
	if (client) {
		text_view.append
			(i18n("Connection attempted but there is already a connection."));
	}
	else {
		client = dynamic_cast<KNetwork::KBufferedSocket *>(server.accept());
		if (client) {
			text_view.append(i18n("Connection accepted."));
		}
		else text_view.append(i18n("Connection failed."));
	}
}

#include "sockettest.moc"

["sockettest.h" (text/x-chdr)]

#ifndef _SOCKETTEST_H_
#define _SOCKETTEST_H_

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <kdockwidget.h>
#include <kserversocket.h>

#include <qtextedit.h>

namespace KNetwork {struct KBufferedSocket;};

class sockettest : public KDockMainWindow {
	Q_OBJECT;

	QTextEdit                   text_view;
	KNetwork::KServerSocket     server;
	KNetwork::KBufferedSocket * client;

public:
    sockettest();

private slots:
	void listenForConnection();
	void acceptConnection   ();
};

#endif // _SOCKETTEST_H_


>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic