【发布时间】:2017-04-12 05:07:23
【问题描述】:
您好,我有多个系统使用 TCP 连接通过消息进行通信。
在两者之间的通信过程中,我首先发送一个消息作为“启动进程”,作为回报它应该回复为“进程启动”
但是,其他系统没有收到“Process Started”消息,而没有任何异常地执行了sendall(“Process Started”)行。
我的示例代码如下:
TCP 初始化:
def __init__(self):
self.tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.tcp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.tcp.setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, struct.pack('ll',0,1))
self.tcp.bind('',12000)
self.tcp.listen(1)
self.client, seld.address = self.tcp.accept()
(self.Ip,self.port)= self.address
主要功能:
while True:
msg =""
try:
msg = self.client.recv(512)
except socket.error as e:
if e[0] == 11:
# exception for RECVTIMEO used in the socket creation.
pass
if (msg == "Start Process"):
send = "Process Started"
self.client.sendall(send)
print "status sent"
在执行这段代码时,我能够收到消息“开始进程”。但是在执行self.client.sendall(send)行时没有发送“进程启动”,我已经在wireshark中捕获了数据包,我得到了包含“启动进程”的数据包,但没有获得“进程启动”的数据包
有人可以帮我吗???
【问题讨论】:
标签: python c++ sockets tcp wireshark