Python网络编程recv和recvfrom函数的区别

2024-12-05 17:57:03

1、打开Python开发工具IDLE,新建一个‘client.py’文件,并在文件写代码如下:from socket import *usock = socket(AF_INET,SOC憬悸原蠼K_DGRAM)addr = ('127.0.0.1',8888)usock.sendto(b'hello',addr)usock.close()这里是使用的UDP报文协议,SOCK_DGRAM参数是UDP协议使用的。

Python网络编程recv和recvfrom函数的区别

2、在IDLE中在新建一个‘server.py’文件是服务器端,接收数据用的,写代码如下:from socket import *usock = socket(AF_INET,SOCK_DGRAM)baddr = ('',8888)usock.bind(baddr)data = usock.recv(1024)print (data)usock.close()这是接收数据使用的是recv函数

Python网络编程recv和recvfrom函数的区别

3、使用Win+R组合键,打开运行,输入cmd打开命令行窗口

Python网络编程recv和recvfrom函数的区别

4、在命令行窗口,切换目录到server.py文件所在目录,使用命令运行这个文件python server.py此时程序会处于阻塞等待状态

Python网络编程recv和recvfrom函数的区别

5、在client.py文件,点击IDLE工具菜单栏的Run的调试运行,Run Moudle

Python网络编程recv和recvfrom函数的区别

6、这时在服务端会打印出接收到的消息,就是客户端发送的hello

Python网络编程recv和recvfrom函数的区别

7、更改ser箪滹埘麽ver.py代码,使用recvfrom函数,如下图所示from socket import *usock = socket(AF_I绿覆冗猩NET,SOCK_DGRAM)baddr = ('',8888)usock.bind(baddr)data = usock.recvfrom(1024)print (data)usock.close()

Python网络编程recv和recvfrom函数的区别

8、重复4-5步,发现打印出的是元组类型的值,包含发送的内容,发送地址和端口号,也就是client.py运行时使用的端口号。

Python网络编程recv和recvfrom函数的区别

9、总结 recvfrom函数接收数据比recv更丰富,包含了发送方的地址信息。

猜你喜欢