python 网络编程 udp
发送方:
import socket
def main():
#创建套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
while True:
#从键盘输入数据
send_data = input('输入:')
#发送数据
udp_socket.sendto(send_data.encode('GBK'),('192.168.152.1',5000)) # 这里注意我是发送给Windows下的网络调试助手,而windows默认编码是GBK所以编码成GBK发送过去不会乱码
if send_data == 'quit':
break
#关闭套接字
udp_socket.close()
print('-----------')
if __name__ == '__main__':
main()
接收方:
def main():
# 创建套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 绑定本地信息,如果网络不绑定,则系统随机分配
localaddr = ("",1888)
udp_socket.bind(localaddr)
# 接收数据
recv_data = udp_socket.recvfrom(1024)
recv_msg = recv_data[0].decode('GBK') # 因为windows发送过来的是gbk编码的,所以在这解码用GBK
send_port = recv_data[1]
# 打印接收数据
print(str(send_port),recv_msg)
# 关闭套接字
udp_socket.close()
print('-----------')
if __name__ == '__main__':
main()