Python UDP接收缓冲区被覆盖

时间:2014-11-01 08:38:28

标签: python c string udp null-terminated

我有一个客户端(用Python编写)和一个服务器(用C编写)

以下是我的python udp客户端代码的一部分:

    for x in range(noResults):
     fName, addr = sock.recvfrom(1000)
     print "Name:", fName
     resultList[x].name=fName.strip('\x00')
     fSize, addr = sock.recvfrom(1000)
     print "Size:", fSize
     resultList[x].size=fSize.strip('\x00')
     fPort, addr = sock.recvfrom(1000)
     print "Port:", fPort
     resultList[x].port=fPort.strip('\x00')
     fIP, addr = sock.recvfrom(1000)
     print "IP:", fIP
     resultList[x].ip=fIP.strip('\x00')
     sys.stdout.flush()
     print "IP:",resultList[x].ip
     i=i+1

虽然与服务器通信后产生的输出(用C语言编写)是:

姓名:旅行Prague.mp4
大小:1936l Prague.mp4
港口:5008l Prague.mp4
IP:127.0.0.1gue.mp4
IP:127.0.0.1gue.mp4

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我终于更改了我的服务器以创建一个新的字符串,用于发送每个名称,大小,IP,端口并通过UDP发送该字符串,这解决了问题 谢谢大家!!