python udp网络程序设计,python udp tcp
仅用于研究参考。
1.udp网络程序-发送数据创建一个基于udp的网络程序的过程非常简单。具体步骤如下:
创建客户端套接字,发送/接收数据,关闭套接字
实验拓扑
在windows端,采用NetAssist网络调试工具接受数据,如下:
在Centos7系统中,写python代码发送UDP数据请求。代码如下:
#编码=utf-8
从套接字导入*
# 1.创建udp套接字
udp_socket=socket(AF_INET,SOCK_DGRAM)
# 2.准备好收件人的地址
#“192 . 168 . 1 . 103”表示目标ip地址
# 8080表示目的端口。
Dest _ addr=(192.168.1.2 ,8080) #注意是元组,ip是字符串,端口是数字。
# 3.从键盘获取数据
#send_data=input(请输入要发送的数据:)
# 4.将数据发送到指定计算机上的指定程序
udp_socket.sendto(b 哈哈哈,dest_addr)
# UDP _ socket . send to(send _ data . encode( utf-8 ),dest_addr)
# 5.关闭插座
Udp_socket.close()运行现象:
在Centos7中运行脚本:
要优化,使用输入法发送数据。代码如下:
[root @ server 01 work]# vim client . py
#编码=utf-8
从套接字导入*
# 1.创建udp套接字
udp_socket=socket(AF_INET,SOCK_DGRAM)
# 2.准备好收件人的地址
#“192 . 168 . 1 . 103”表示目标ip地址
# 8080表示目的端口。
Dest _ addr=(192.168.1.2 ,8080) #注意是元组,ip是字符串,端口是数字。
# 3.从键盘获取数据
Send_data=input(请输入要发送的数据:)
# 4.将数据发送到指定计算机上的指定程序
#udp_socket.sendto(b 哈哈哈,dest_addr)
UDP _ socket . send to(send _ data . encode( utf-8 ),dest_addr)
# 5.关闭插座
Udp_socket.close()执行如下:
[root @ server 01 work]# python client . py
请输入要发送的数据:“您好服务器”
[root@server01 work]#
2.udp网络程序-发送和接收数据。客户端发送数据的代码如下:
[root @ server 01 work]# vim client . py
#编码=utf-8
从套接字导入*
# 1.创建udp套接字
udp_socket=socket(AF_INET,SOCK_DGRAM)
# 2.准备好收件人的地址
#“192 . 168 . 1 . 103”表示目标ip地址
# 8080表示目的端口。
Dest _ addr=(192.168.116.128 ,7788) #注意是元组,ip是字符串,端口是数字。
# 3.从键盘获取数据
Send_data=input(请输入要发送的数据:)
# 4.将数据发送到指定计算机上的指定程序
#udp_socket.sendto(b 哈哈哈,dest_addr)
UDP _ socket . send to(send _ data . encode( utf-8 ),dest_addr)
# 5.关闭插座
udp_socket.close()服务器接收数据的代码如下:
[root @ server 01 work]# vim server . py
#编码=utf-8
从套接字导入*
# 1.创建一个套接字
udp_socket=socket(AF_INET,SOCK_DGRAM)
# 2.绑定本地相关信息。如果一个网络程序没有绑定,系统会随机分配。
Local_addr=( ,7788) # ip地址和端口号。一般不需要写ip,就是说这个机器的任何ip。
udp_socket.bind(本地地址)
# 3.等待接收对方发送的数据
rec _ data=UDP _ socket . recvfrom(1024)# 1024表示这次接收的最大字节数。
# 4.显示接收到的数据
print(recv_data[0])。解码( gbk )
# 5.关闭插座
udp_socket.close()测试执行如下:
从上面可以看出,udp的前期数据已经传输成功。那么你如何传播这些数据呢?
多次发送多次接收。
3.udp网络程序-多次发送和接收数据。客户端设置循环发送数据,输入stop时停止发送。
代码如下:
[root @ server 01 work]# vim client . py
#编码=utf-8
从套接字导入*
# 1.创建udp套接字
udp_socket=socket(AF_INET,SOCK_DGRAM)
# 2.准备好收件人的地址
#“192 . 168 . 116 . 128”表示目标ip地址
# 7788表示目的端口。
Dest _ addr=(192.168.116.128 ,7788) #注意是元组,ip是字符串,端口是数字。
虽然正确:
# 3.从键盘获取数据
Send_data=input(请输入要发送的数据:)
# 4.将数据发送到指定计算机上的指定程序
UDP _ socket . send to(send _ data . encode( utf-8 ),dest_addr)
#发送stop以停止服务
if send_data==stop :
破裂
# 5.关闭插座
Udp_socket.close()服务器设置为循环接收数据,代码如下:
[root @ server 01 work]# vim server . py
#编码=utf-8
从套接字导入*
# 1.创建一个套接字
udp_socket=socket(AF_INET,SOCK_DGRAM)
# 2.绑定本地相关信息。如果一个网络程序没有绑定,系统会随机分配。
Local_addr=( ,7788) # ip地址和端口号。一般不需要写ip,就是说这个机器的任何ip。
udp_socket.bind(本地地址)
虽然正确:
# 3.等待接收对方发送的数据
rec _ data=UDP _ socket . recvfrom(1024)# 1024表示这次接收的最大字节数。
# 4.显示接收到的数据
recv_result=recv_data[0]。解码(“gbk”)
打印(接收结果)
#显示彼此的ip和端口
打印(recv_data[1])
if recv_result==stop :
破裂
# 5.关闭插座
Udp_socket.close()执行如下:
从右边可以看到,客户端发送的端口每次都是变化的。你能确定一个端口号吗?
4.udp网络程序-客户端发送的固定端口号。客户端设置绑定数据的端口号,代码如下:
[root @ server 01 work]# vim client . py
#编码=utf-8
从套接字导入*
# 1.创建udp套接字
udp_socket=socket(AF_INET,SOCK_DGRAM)
#绑定客户端发送数据的端口号
Local_addr=( ,8008) # ip地址和端口号。一般不需要写ip,就是说这个机器的任何ip。
udp_socket.bind(本地地址)
# 2.准备好收件人的地址
#“192 . 168 . 1 . 103”表示目标ip地址
# 8080表示目的端口。
Dest _ addr=(192.168.116.128 ,7788) #注意是元组,ip是字符串,端口是数字。
虽然正确:
# 3.从键盘获取数据
Send_data=input(请输入要发送的数据:)
# 4.将数据发送到指定计算机上的指定程序
UDP _ socket . send to(send _ data . encode( utf-8 ),dest_addr)
#发送stop以停止服务
if send_data==stop :
破裂
# 5.关闭插座
Udp_socket.close()执行如下:
关注微信微信官方账号,回复【数据】,Python,PHP,JAVA,web,即可获取Python,PHP,JAVA,前端等视频数据。
来自海洋的渔夫原创作品,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。