python socket 简单通信
Socket 工作原理和基本概念
Socket 的中文翻译是套接字,它是 TCP /IP网络环境下应用程序与底层通信驱动程序之间运行的开发接口,它可以将应用程序与具体的 TCP /IP隔离开来,使得应用程序不需要了解 TCP /IP的具体细节,就能够实现数据传输。
详细了解可以参考以下:
链接: socket.
服务端参考代码
代码片
.
import socket def serverTask(): #创建socket socket_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)#udp, #绑定到本地ip和端口 socket_udp.bind(('127.0.0.1', 60001)) #循环接收客户端发送的udp报文 while True: try: recvdatas, address = socket_udp.recvfrom(128) recvmessage = recvdatas.decode("utf-8") print("收到来自{}的消息:{}".format(address[0],recvmessage)) #回复消息给客户端 backmessage = "【" + recvmessage+"】已经收到!" socket_udp.sendto(backmessage.encode("utf-8"),address) except Exception as erro: print(f"异常:{erro}",) socket_udp.close() if __name__ == "__main__": serverTask()
客户端参考代码
import socket def clientTask(): # 创建socket socket_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)#udp, while True: senddatas= input("请输入发送数据:") socket_udp.sendto(senddatas.encode("gb2312"), ('127.0.0.1', 60001)) #收取服务端的回应 recvdatas, address = socket_udp.recvfrom(1024) print("收到来自{}的消息:{}".format(address[0], recvdatas.decode("utf-8"))) if senddatas == 'quit': break #关闭socket socket_udp.close() if __name__ == "__main__": clientTask()
效果图