用QT写的socket程序,客户端出现连接错误
利用Qt编写了一个视频显示的客户端界面,想通过socket进行服务器与客户端的的通信,现在测试时客户端的connect与服务器不能连接,导致通信的失败。主要是利用一个线程创建socket(windows下),用的tcp协议,调用的是c库里相关socket函数。代码如下:
void Thread::newConnect()
{
socketfd = socket(AF_INET,SOCK_STREAM,0);
if(socketfd < 0)
{
qDebug()<<"socket error";
return;
}
memset(&addr,0,sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htonl(8000);
addr.sin_addr.s_addr = inet_addr("192.168.1.10");
char buf[1024];
memset(buf , 0 , sizeof(buf));
if(::connect(socketfd,(struct sockaddr*)&addr,sizeof(addr)) < 0);
{
qDebug()<<"connect error";
return;
}
recv(socketfd,buf,sizeof(buf),0);
//printf("%s\n",buf);
QString message;
message = buf;
qDebug()<<message;
}
编译执行的结果:
Starting E:\qt\demo1\debug\demo1.exe...
connect error
请各位大虾帮我指点指点,不胜感谢 Qt socket
[解决办法]
addr.sin_port = htonl(8000);
是不是该用htons
[解决办法]
都用Qt了,直接QTcpSocket呗
[解决办法]
1 确保你的服务端是已经运行状态
2 对于端口网络字节hots(port); ip地址为inet_addr("192.168.1.10");
[解决办法]
实习三天然后自己在公司学了3天socket……坑爹啊,应该是htons(8000)出错了。。。请问你实现了多个客户端连接进来没?上头说让我实现50个以上连接。。。