UDP网络编程(Python)

基于UDP的网络是无连接的,服务器和客户端不需要实现建立连接,发送数据时直接指定地址参数。通信双方地位平等,传输无法保证对方能够接收到数据报。

服务器端:

#ChatServerUDP.py
import socket
serversocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#创建UDP的socket
serversocket.bind(("127.0.0.1",8000)) #绑定到对应IP地址和端口
while 1:
    data,address=serversocket.recvfrom(1024)   #接受数据,返回数据和客户机地址
    if not data:break;  #接收收据为空时,终止循环
    print("Received from client:",address,repr(data)) #将接收到的数据以字符串打印输出
    print("Echo:",repr(data))  #输出发送到客户机数据信息
    serversocket.sendto(data,address)   #发送数据到客户机
serversocket.close() #关闭服务器socket
    

客户端:

#ChatClienUDP.py
import socket
clientsocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#创建UDP的socket
while 1:
    data=raw_input(">")   #用户输入数据
    clientsocket.sendto(data.encode(),("127.0.0.1",8000)) #把数据以bytes对象发送到指定服务器
    if not data:break   #数据为空,终止循环
    newdata=clientsocket.recvfrom(1024)   #接收服务器的回送数据
    print("Received from server:",repr(newdata))
clientsocket.close()   #关闭客户机socket

运行结果:

服务器端:


客户机端:



CentOS下的运行结果:

服务器端:


客户机端:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值