用tcpserver 监听http请求,返回请求的时候,发送数据较少为什么接受不了数据??
-
我在服务器端用tcpserver监听一个http请求,在客户端用QNetworkAccessManager发送请求,用 QNetworkReply接收请求。服务器端接受到这个http请求后,我给他返回数据,例如这样
@ QTcpSocket* socket = serverConnect;
os.setAutoDetectUnicode(true);os << "HTTP/1.0 200 Ok\r\n" "Content-Type: text/html; charset=\"utf-8\"\r\n" "\r\n" "<h1>Nothing to see here</h1>\n"<<"i love you";@
当数据流写的内容多的时候,客户端可以接受到,但是如果这样写,就接受不到了,为什么,例如
@ os.setAutoDetectUnicode(true);os << "i love you";@
,还有一个问题,服务器端如何实现长连接呢??
-
我认为是tcp的纳格算法造成的
http://zh.wikipedia.org/wiki/納格算法 -
不是,发送完后,写tcpsocket.close(),就可以接收到了
-
你试试最后添加一个'\n'结束符或者你可以用abort()函数,我前段时间搞过tcp传输,善用setReadbuffersize()这个函数