#include <qsocketdevice.h>
#include <qhostaddress.h>
#include <qstring.h>
main()
{
int socket;
char data[500];
int len;
//client[5];
QSocketDevice *server;
QSocketDevice *client;
QHostAddress myaddress;
myaddress.setAddress("192.168.1.88");
int port=1234;
server=new QSocketDevice(QSocketDevice::Stream);
if(!server->bind(myaddress,port))
{
printf("bind error\n");
server->~QSocketDevice();
}
if(!server->listen(5))
{
printf("listen error\n");
server->~QSocketDevice();
}
while(1)
{
//server->waitForMore ( -1, 0 );
socket=server->accept();
printf("socket:%d\n",socket);
printf("new connection\n");
client=new QSocketDevice(socket,QSocketDevice::Stream);
int a=client->socket();
printf("a:%d\n",a);
len=client->readBlock ( data, 500 );
data[len]='\0';
printf("data:%s\n",data);
}
}
该程序只能接收到一个新的连接后才能接收一次数据,但是我想实现如下的功能:如果是新的连接则接受连接,如果是已经建立过的连接则直接收发数据,问题是我这段代码以后要在一个辅助线程中实现,所以我不能用QSocketNotifier类进行侦听,那么我应该怎么实现呢?
[ 此贴被XChinux在2006-09-11 20:54重新编辑 ]