我使用UDP在Python中有一个简单的客户端/服务器程序。我需要发送一个包含大小正好为120字节的消息和报头的数据包。 (数据包总大小为120 + sizeof(header)
。)
我该怎么做? MESSAGE
的内容应该是什么?
我的代码:
MESSAGE = "?120B?"
sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
答案 0 :(得分:0)
您可以使用ljust
方法将字符串填充为固定长度:
>>> MESSAGE.ljust(120)
'?120B? '
但是如果字符串的长度超过120,ljust
不会截断它。你可以这样做:
MESSAGE.ljust(120)[:120]
上面的示例将默认使用空格填充字符串。您可以选择指定自定义填充字符(例如空字符):
MESSAGE.ljust(120, '\0')[:120]
看起来你想用空字符填充字符串,但是请记住,如果没有给出长度,接收器可能会在到达第一个空字符时剪掉字符串。我猜你打算在标题中存储字符串的长度,如果你这样做,你就不应该有任何问题。