tcp编程
来源:互联网 发布:pc视频编辑软件 编辑:程序博客网 时间:2024/05/21 17:30
******tcp连接属于三次握手*****
SYN 用于向对方发起连接请求的标志,规定带syn标志的数据包占一个字节的编号。J是顺序号,
ACK 是用于应答的标志,规定除了第一次的SYN请求的数据包没有ACK,后面所有的数据包都带有ACK应答标志。发送J+1。
J+1 = 5 ,J+6..
三次目的:为了防止服务器被恶意请求。
数据传输:两次连接
**四次挥手**断开连接属于四次链接,FIN用于断开连接标志,规定带FIN标志的数据包占一个字节编号
MSL**Maximum segment Lifetime 最大的数据生存时间。
*****重点****TCP服务端流程,TCP客户端流程**********
tcp --传输控制协议,面向连接的,可靠的,基于字节流的传输层通信协议。(应答机制,超时长传机制,字节流有编号)
connect()---发起连接请求
accept()---接起连接请求
-----------------------------服务器端---------------------
1.创建socket,流式套接字,tcp协议.
listen_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 设置允许复用地址 #(socket层属性,重用地址,允许)
listen_socket.setsockopt(socket.SOL_SOCKET, scoket.SO_REUSEADDR,1)
2.绑定地址(ip,port)
my_addr=('192.168.138.127', 10000)
lisetn_socket.bind(my_addr)
3.设为监听状态listen()
listen_socket.listen(128) #backlog参数用来缓存客户端连接请求的队列长度
print('listending....') #进入监听状态
4.等待链接请求accept()
while True:
ret,new_addr = listen_socket.accpet()
print(ret)
print(new_addr)
#服务器收数据
rew =ret.recv(1024) #对方关闭,recv不会阻塞,返回空字符串
ret.recv(1024).close()
listen_socket.close()
---------------------------客户端流程------------------------
def main():
#1. ---创建socket
tcp_socket =socket.socket(socket,AF_INET,socket.SCK_STREAM)
阅读全文
0 0
- TCP编程
- TCP编程
- TCP 编程
- TCP 编程。
- TCP编程
- TCP编程
- TCP编程
- TCP编程
- TCP编程
- tcp编程
- TCP编程
- TCP编程
- TCP编程
- TCP编程
- tcp编程
- TCP编程
- TCP编程
- TCP编程
- python udp编程知识
- 最长公共子串/动态规划实现
- .net蚂蚁金服支付宝手机网站支付接口记录
- 机器学习之梯度下降法数学推导--回归
- 十二经络的值班表
- tcp编程
- jdbc通过hive server2访问hive
- mysql必知必会pdf
- MSSQL:用openrowset增改查xls
- SSH环境的搭建
- AndroidStudio常用控件
- PCA数学原理及算法实现
- ajax提交form表单,表单里包括图片
- jquery实现选项卡