是否可以通过互联网发送空字节,以便另一方可以正确读取它而不会在空字节位置截断?
例如:
str =" \ xab \ xcd \ x00 \ x12 \ xf6 \ xbe"
另一方现在只能阅读\ xab \ xcd。
答案 0 :(得分: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地址: - )。