Loading... # 套接字(PYTHON) ## UDP ### 发送端 1. 引入socket模块,并创建一个套接字对象 ```python import socket socket.socket(AddressFamily, Type) ``` 其中两个参数: - AddressFamily:可以选择AF_INET(用于Internet进程间通信)或者AF_UNIX(用于同一台机器进程间通信),实际工作常用AF_INET - Type:套接字类型,可以是SOCK_STREAM(流式套接字,主要用于TCP协议)或者SOCK_DGRAM(数据报套接字,主要用于UDP协议) > 例1:创建TCP套接字 > > ```python > import socket > > # 创建tcp套接字 > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > > # ...这里是使用套接字的功能(省略)... > > # 不用的时候关闭套接字 > s.close() > ``` > > 例2:创建UDP套接字 > > ```python > import socket > > # 创建tcp套接字 > s = socket.socket(AF_INET, SOCK_DGRAM) > > # ...这里是使用套接字的功能(省略)... > > # 不用的时候关闭套接字 > s.close() > ``` > 2. 准备接收方地址,和想要发送的内容 ```python dest_addr = ('IP', port) send_data = input("输入要发送的内容:") ``` `IP`换成接收方的IP地址 `port`换成指定端口 3. 发送套接字 ```python udp_socket.sendto(send_data.encode('utf-8'), dest_addr) ``` 要发送的内容需要 4. 关闭套接字 ```python udp_socket.close() ``` ### 接收端 1. 引用socket模块,创建套接字对象 ```python import socket udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ``` 2. 指定本机IP端口号并绑定 ```python local_addr = ('IP', port) ``` `IP`换成想要接收的本地IP,可以是0.0.0.0,localhost,172.0.0.1,也可以为空表示本机任意IP,但是基本必须都是自己的IP地址,其他绑定不了 `port`表示想要从哪个端口接收数据 3. 等待接收对方发来的数据 ```python recv_data = udp_socket.recvfrom(1024) ``` `1024`指的是本次接收的最大字节数 4. 显示接收方数据 ```python print(recv_data[0].decode('gbk')) ``` 因为接收到数据是一个元组`(b'内容', ('IP地址', 端口号))`,所以要想只拿到数据只有元组里面第一个元组,第二个元组是发送方的信息,GBK(Windows编码中文的方式)解码直接得到内容,如果没有中文直接用UTF-8 5. 关闭套接字 ```python udp_socket.close() ``` 最后修改:2024 年 04 月 24 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏
1 条评论
陈昵函:文章真不错http://wap.jst-gpmx.cn/news/30254.html