内容简介:Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。参数解析:family:AF_UNIX(适用跨机通信) 或 AF_INET(IPv4)(适用本机通信)
什么是 Socket?
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
python创建套接字
socket.socket([family[, type[, proto]]])
参数解析:
family:AF_UNIX(适用跨机通信) 或 AF_INET(IPv4)(适用本机通信)
type:套接字类型,可以根据是面向连接的还是非连接分为 SOCK_STREAM(TCP) 或 SOCK_DGRAM(UDP)
protocol:一般不填默认为0.
客户端代码:udp_client.py
第一步:导入socket模块和创建套接字
import socket u_client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
第二步:开始通信
# s.getsockname() 返回套接字自己的地址。
print("%s:%s 开始工作" %u_client.getsockname())
while True:
# 发送数据
data = input("input>>>")
u_client.sendto(data.encode('utf-8'), ("localhost", 8887))
# 退出系统操作
if data == 'exit':
break
# 接收数据
data, addr = u_client.recvfrom(1024)
print("客户端接收信息的来源: %s:%s" %addr)
print("客户端接收信息的数据: %s" %data.decode('utf-8'))
第二步:关闭套接字
u_client.close()
服务端代码:udp_server.py
第一步:导入socket模块和创建套接字
import socket u_server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
第二步:开始通信
# 绑定端口
u_server.bind(('localhost', 8887))
print("%s:%s 开始工作" %u_server.getsockname())
while True:
# 接收数据
# u_server.recvfrom() 接收UDP数据,返回值是(data,address)
data, addr = u_server.recvfrom(1024)
print("接收信息的来源: %s:%s" %addr)
print("接收信息的数据: %s" %data.decode('utf-8'))
# 发送原地址数据
send_data = ("接收到数据:"+data.decode('utf-8')+" --Thanks").encode('utf-8')
u_server.sendto(send_data, addr)
# 退出系统操作
if(data.decode('utf-8') == 'exit'):
break
第二步:关闭套接字
u_server.close()
测试结果
新建两个cmd窗口,分为执行客户端和服务端的代码
以上所述就是小编给大家介绍的《python实现一个简单的udp通信》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Game Engine Architecture, Second Edition
Jason Gregory / A K Peters/CRC Press / 2014-8-15 / USD 69.95
A 2010 CHOICE outstanding academic title, this updated book covers the theory and practice of game engine software development. It explains practical concepts and techniques used by real game studios,......一起来看看 《Game Engine Architecture, Second Edition》 这本书的介绍吧!