首页 > 编程知识 正文

python tcp/ip发送数据包,python udp报文解析

时间:2023-05-05 04:34:43 阅读:107997 作者:3556

UDP:

创建UDP套接字

导入套接字

UDP _ socket=socket.socket (socket.af _ inet,socket.SOCK_DGRAM ) )。

关闭UDP套接字

udp_socket.close (

使用UDP套接字发送数据

UDP _ socket.send to (字节类型数据,目标套接字地址) ) )。

使用UDP套接字接收数据-阻止传入数据

bytes类型的数据,发件人套接字地址=udpp_socket.recvfrom (此次接收的最大长度) )。) ) ) )。

使用固定端口-bind

udp_socket.bind (本地套接字地址) ) ) ) )。

TCP:

1、TCP特点

面向连接-在通信之前必须建立连接

可靠的传输

响应机制

重发超时

序号

检查机制

流量控制

2、TCP客户端进程

connect函数创建与服务器的连接

参数服务器套接字(IP,port ) ) ) )。

recv函数接收TCP数据-等待块

参数表示此次接收的最大长度

返回值的两个作用

通常,接收的是对方发送给自己的数据bytes类型

如果收到的数据是b ' ',则表示对方已断开连接

send函数发送TCP数据

参数指示要发送的数据的bytes类型

返回值成功发送的字节数-----了解

3 .服务器进程

列表函数

设为被动套接字-接受来自客户端的连接

接受函数

与客户端相关联的套接字,客户端地址=accept ()块等待-从等待的服务器中检索一个客户服务

4. 2MSL状态

TCP规定,主动抢占方需要等待30s-2min,确认对方一定会收到最后的ACK

---TCP连接使用的端口在30s-2min内无法理解重新绑定

设置解决方案set socket option套接字选项

sock.setsockopt (

出现地址使用问题的三个原因

1. pycharm同时启动了多个程序绑定同一端口

2. pycharm后台进程还在继续占用上一个端口

3. TCP 2MSL时间

---设置套接字选项,终端运行

忽略2MSL的时间规定,TCP服务器可以不等待2MLS的时间就理解重新绑定前的端口

server _ socket.setsockopt (socket.sol _ socket,socket.SO_REUSEADDR,1 ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。