本文摘自php中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于python中UDP套接字通信的简单解析(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。UDPserver.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import socket
#导入套接字模块
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# - socket.AF_INET:IPV4
# - socket.STREAM:TCP
# - socket.DGRAM:UDP
s.bind(( '' ,25555))
#绑定套接字有效地址和端口
# '' 空位任何地址 本地的127.0.0.1 和局域网还有自己真实的ip
print ( '[+] Server Open.....' )
while True:
try :
data,c_addr = s.recvfrom(1024)
#一次性接受1024bytes的数据 ,返回一个元组,其中有数据和地址
#UDP不需要构成连接,直接发送即可
print ( 'from:' ,c_addr)
#c_addr是一个地址,发送消息的客户端的IP和端口的二元组
print ( 'say:%s' %(data.decode( 'utf-8' )))
msg = data.decode( 'utf-8' )
s.sendto(msg.encode( 'utf-8' ),c_addr)
#发送信息,其中有两个参数,一个是信息,一个是目标地址和端口
except KeyboardInterrupt:
break
print ( '[+] Server Close......' )
s.close
|
UDPclient.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import socket
#导入套接字模块
c = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# - socket.AF_INET:IPV4
# - socket.STREAM:TCP
# - socket.DGRAM:UDP
while True:
try :
msg = input( '>>>' )
if msg == 0:
#判断输入是否为空 就是直接回车了
continue
#UDP不需要构成连接,直接发送即可
c.sendto(msg.encode( 'utf-8' ),( '127.0.0.1' ,25555))
#发送消息,其中两个参数,第一个是要发送的信息
#第二个是发送的ip地址和端口,是一个元组
data,s_addr = c.recvfrom(1024)
#c_addr是一个地址,发送消息的客户端的IP和端口的二元组
print ( '$: %s' %(data.decode( 'utf-8' )))
except KeyboardInterrupt:
break
c.close()
|
UDP套接字模型
UDP不需要构成连接,直接发送即可
服务端模型:
data,c_addr = s.recvfrom(1024)
s.sendto(msg, c_addr)
别人发来的消息 就直接发到s服务端套接字了
data:发来的数据
c_addr:谁发的
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(('',25555))
send recv
sendto recvfrom
都是阻塞的
以上就是python中UDP套接字通信的简单解析(附代码)的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python如何做成可执行文件
如何列出一个目录的所有文件
Python是免费的么
Python怎么启动
Python列表的基本操作有哪些
Python网络编程哪个模块最好?举例Python模块详解
什么是爬虫和爬虫的基本流程
Python求平均值
Python线程下信号量与有边界的信号量的介绍
Python中文是什么意思
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python中UDP套接字通信的简单解析(附代码)