python udp网络程序设计,python udp tcp

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: