所以,假设我在python中创建了一个TCP套接字,而我授权的服务器需要立即发送多个标头进行授权,我该如何解决这个问题呢?我将使用socket.sendall
发送它们,然后等待授权握手回复。在那之后,我需要它等待数据回复,直到它得到一个,我怎么也这样做,因为如果在一定时间内没有收到数据,它是否关闭套接字?是否有一些简单的方法来正确发送或什么?
~~ ~~编辑
我猜的主要问题是如何发送多线路数据包? :)
答案 0 :(得分:1)
SOCK_STREAM
类型的python套接字,使用socket.sendall(data)
函数只发送一个字符串。是的,数据只是一个字符串。现在,您可以构建自己的标题和行以及所有内容并将其放在一个字符串中,并告诉套接字将其全部发送到服务器。
然后只做socket.recv(缓冲区),其中buffer是字节数的整数。正如Thomas Orozco所说,tcp套接字可以在很长一段时间内保持打开状态,因此请确保服务器提供相当快速的回复。
编辑:顺便说一下,TCP是一个传输层协议,你可以在这里读一点:http://en.wikipedia.org/wiki/Transport_layer。简而言之,TCP将传输您告诉它传输的任何内容。在python中,它是字符串。