发送空字节?

Send Null Byte?

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

例如:

str = "\xab\xcd\x00\x12\xf6\xbe"

对方现在只能读\xab\xcd。

当然,任务很简单,如果服务器正确接收二进制数据。例如服务器端:

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 地址:-)。