後聽它,我得到的頭不錯,但不是數據,女巫後空行(\ r \ n \ r \ n)的 它時,我用這個作爲客戶端同樣的事情:Luasocket TCP停止 r n r n
s.socket_write(h,"test1\r\ntest2\r\n\r\ntest3") -- (not luasocket)
我看到test1和test2
我試着搞亂setOption功能,但它沒有工作
有沒有什麼辦法可以接收數據?
後聽它,我得到的頭不錯,但不是數據,女巫後空行(\ r \ n \ r \ n)的 它時,我用這個作爲客戶端同樣的事情:Luasocket TCP停止 r n r n
s.socket_write(h,"test1\r\ntest2\r\n\r\ntest3") -- (not luasocket)
我看到test1和test2
我試着搞亂setOption功能,但它沒有工作
有沒有什麼辦法可以接收數據?
我不知道你所期望的,但默認「模式」是讀取一行,並因爲你的字符串"test1\r\ntest2\r\n\r\ntest3"
沒有到底換行,那麼receive
通話等待換行符。
通常,在閱讀標題後,您已經知道要閱讀的內容的長度,然後您可以執行s:receive(number_of_bytes_to_read)
(至少這是我所做的工作,沒有任何問題)。
您試過填充socket.receive()
模式參數嗎? [1]
不確定哪一個是默認值,但您可以考慮使用socket.receive('*a')
並稍後解析這些新行。
[1] http://w3.impa.br/~diego/software/luasocket/tcp.html#receive
使用* a不會返回test1或test2它只是在套接字關閉時返回。 – PixelToast
謝謝,我已經找到了,我必須使用s:receive(headers.Content-Length)來檢測POST。 – PixelToast