• 4438阅读
  • 2回复

QT编写的客户端和socket编写的服务器发送和接收数据的问题 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2011-08-01
各位大牛,我需要实现一个用QT中的QSocket库编写的客户端与用基本SOCKET编写的服务器进行数据发送和接收,遇到了一些问题,希望能帮助我解决一下。
我的QT中的代码
void Thread::sendMessage()
{
    QTcpSocket *clientConnection = tcpSocket;
    connect(clientConnection,SIGNAL(disconnected()),clientConnection,SLOT(deleteLater()));
    clientConnection->write("bbbb\0");
}
我的服务器端的代码
while(1)
    {
        sockcon = accept(tsock_fd,(struct sockaddr *)&from,&len);
        char recvbuf[100];
    char sendbuf[100];
    send(sockcon,"         HELLO",strlen("         HELLO")+1,0);
        recv(sockcon,recvbuf,100,0);
        printf("%s\n",recvbuf);
    }

遇到的问题是
1、我接受客户端发送来的数据的时候,数据不仅包括了我所发的数据,还有一些多余的字符。而且,如果我之前发送了一串更长的数据比如“ABCDE”,如果第二次发送的数据是“123”的时候,服务器接受到的数据是“123DE”再加上之后的乱码
2、服务器中我的每个SOCKET是通过线程建立的,线程是在界面的主进程中运行的,我在主线程中有一个消息响应函数,就是点击一个按钮就运行线程中的一个函数,但问题是,我如果直接运行两遍函数,可以接受到2次数据,但是如果单击两次按钮,却无法实现接受2次数据的功能。

希望有大牛能帮忙解决一下,小弟我感激不尽。

离线goku_b
只看该作者 1楼 发表于: 2011-08-01
这不是QT写的吧~~
只看该作者 2楼 发表于: 2011-08-01
服务器代码不是QT,客户端是QT啊
快速回复
限100 字节
 
上一个 下一个