Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Chinese
  4. 用tcpserver 监听http请求,返回请求的时候,发送数据较少为什么接受不了数据??

用tcpserver 监听http请求,返回请求的时候,发送数据较少为什么接受不了数据??

Scheduled Pinned Locked Moved Chinese
4 Posts 3 Posters 3.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    foxgod
    wrote on last edited by
    #1

    我在服务器端用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";@
    

    ,还有一个问题,服务器端如何实现长连接呢??

    1 Reply Last reply
    0
    • B Offline
      B Offline
      billconan
      wrote on last edited by
      #2

      我认为是tcp的纳格算法造成的
      http://zh.wikipedia.org/wiki/納格算法

      1 Reply Last reply
      0
      • F Offline
        F Offline
        foxgod
        wrote on last edited by
        #3

        不是,发送完后,写tcpsocket.close(),就可以接收到了

        1 Reply Last reply
        0
        • T Offline
          T Offline
          Trustkuan
          wrote on last edited by
          #4

          你试试最后添加一个'\n'结束符或者你可以用abort()函数,我前段时间搞过tcp传输,善用setReadbuffersize()这个函数

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved