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()
效果图