udp接收发送数据程序以和注意事项
一.流程图
二.如何创建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
系列文章
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01