2015-04-04 97 views
0

是否有可能通过互联网发送空字节,以便对方可以正确读取它,而不会在空字节位置截断?发送空字节?

例如:

STR = “\ XAB \ XCD \ X00 \ X12 \ XF6 \ XBE”

另一侧只能读取\ XAB \ XCD现在。

+0

一般来说,这是可能的。但是协议(您没有指定)和另一方的实现可能存在限制。 – 2015-04-04 02:27:23

+0

你确定另一端没有收到吗?错误可能在于打印出它收到的内容。 – stark 2015-04-04 12:15:49

回答

2

当然,任务是微不足道的,如果服务器正在正确接收二进制数据。例如,服务器端:

from socket import * 
serverSocket = socket(AF_INET, SOCK_DGRAM) 
serverSocket.bind(('', 12000)) 

while True: 
    message, address = serverSocket.recvfrom(1024) 
    print 'Server received', repr(message) 
    serverSocket.sendto(message + message, address) 

和客户端

from socket import * 
message = '\xab\xcd\x00\x12\xf6\xbe' 
clientSocket = socket(AF_INET, SOCK_DGRAM) 
clientSocket.sendto(message, ('127.0.0.1', 12000)) 
data, server = clientSocket.recvfrom(1024) 
print 'client received:', repr(data) 

显示它的工作完全给我使用的是这里的IP地址在同一台机器上的两个终端(运行客户端和服务器: - )。