【发布时间】:2019-02-27 13:56:50
【问题描述】:
我刚开始在 python 中使用 udp,并想出了以下客户端,用于与我正在编写的服务器来回交谈。我的问题是关于 recvfrom 电话的。它会收到什么数据包?它会收到任何数据包,还是发生了一些注册,表明我想要从我发送的东西中得到结果?我对较低级别的它更好奇,比如正在制作什么系统调用。
#!/usr/bin/python3
# shell.py
#
# Usage:
#
# ./shell.py <IP_ADDR> <PORT>
import sys
import socket
SERVER_IP = sys.argv[1]
SERVER_PORT = int(sys.argv[2])
MAX_MESSAGE_LEN = 4096
# set up the right socket type
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
target = (SERVER_IP, SERVER_PORT)
try:
while True:
data = input("> ")
sent = sock.sendto(data.encode('utf-8'), target)
data, server = sock.recvfrom(MAX_MESSAGE_LEN)
print(repr(server))
print("Got {}".format(data))
finally:
print("Closing socket")
sock.close()
【问题讨论】:
标签: python sockets udp system-calls