• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

udp接收发送数据程序以和注意事项

武飞扬头像
chanbaek1688
帮助1

一.流程图

学新通

二.如何创建socket

学新通

三.服务器端代码

import socket
#1.创建套接字
udp_ser_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

#2,绑定本地的相关信息,服务器端程序(比如一键报警程序),需要绑定
#两个参数,IP地址和端口号。** ip地址默认不写,因为一个网卡可以配多个IP地址,默认选系统中第一个
local_addr=('',2000)
#bind的参数是本地的相关信息
udp_ser_socket.bind(local_addr)

# 3. 等待接收对方发送的数据,1024表示本次接收的最大字节数
recv_data=udp_ser_socket.recvfrom(1024)

#4.显示接收到的数据
#对收到的数据解码
print(recv_data[0].decode('utf8'))
#客户端地址在recv_data[1]里,形式为(IP地址,客户端第一个sento随机开启的端口)
client_address=recv_data[1]

#5.发信息给客户端
udp_ser_socket.sendto('来自Ubuntu的信息'.encode(),client_address)

#6.关闭套接字
udp_ser_socket.close()
学新通

四.客户端代码

import socket
#1.初始化一个套接字
udp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 2. 发送数据到('192.168.242.128', 2000)
aim_address = ('192.168.242.128', 2000)
# sento函数两个参数,发送信息和目的地址。而自己的ip地址默认带着,自己的端口随机开启
udp_client_socket.sendto('来自windows的信息'.encode('utf8'), aim_address)

#3.接收服务器端发来的数据
recv_data = udp_client_socket.recvfrom(1024)
print(recv_data[0].decode('utf8'))

#4.关闭
udp_client_socket.close()

五.运行

学新通
ctrl alt T 调出终端,输入以上代码,IP要写目的地址,先运行服务器端,再运行客户端,因为需要UDP服务器端先绑定信息,并开始接收

六.注意事项

1.绑定bind 后查看本地端口的状态
netstat -an|grep 2000
学新通


2.如何杀被占用的进程

学新通


3.收发数据注意转换

学新通


4.ctrl c

学新通


5.若写udp_ser_socket.sendto(b'Ubuntu'.,client_address) 引号里面就不应该带汉字


6.注意方法名别输错比如sento


7.UDP必须先一方先接收,另一方才能发送,且接收和发送是必须是成对的


8.写代码,IP地址一定要对应好,否则会出错


9.没启动服务器端的报错

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfcfhi
系列文章
更多 icon
同类精品
更多 icon
继续加载