【问题标题】:Send Null Byte?发送空字节?
【发布时间】:2015-04-04 02:17:10
【问题描述】:

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

例如:

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

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

【问题讨论】:

  • 一般来说这是可能的。但可能存在协议(您未指定)和对方实现的限制。
  • 你确定对方没有收到吗?错误可能在于打印出它收到的内容。

标签: python encoding binary system


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-08-06
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    相关资源
    最近更新 更多