TCP协议

博客介绍了IP地址(包括IPv4和IPv6)、端口和端口号,阐述了TCP传输控制协议。详细讲解了socket用于网络数据传输,还给出了TCP客户端、服务端及多任务版服务端的开发流程,最后剖析了发送和recv把数据放缓冲区再发送的原理。

1.IP地址介绍
IP地址是标识网络中设备的一个地址
IP分为IPv4和IPv6,ipv4是由点分十进制组成,ipv6是由冒号十六进制组成
检查当前设备是否联网用ping www.baidu.com
查找ip地址:ipconfig
2.端口和端口号
端口是传输数据的通道
端口号是对端口进行编号
知名端口号:总所周知的端口号范围0~1023
动态端口号:是程序开发使用的端口号称为动态端口范围1024~65535
3.TCP
TCP:传输控制协议,面向链接,可靠,字节流的传输通信协议
4.socket介绍
网络数据传输可以通过socket来完成
socket.AF_IEAT 对应IPV4
sovket.SCOK_STREAM TCP
5.TCP客户端开发流程
创建客户端
与服务端连接
发送数据
接收数据
关闭客户端

进口套接字
colient_socket = socket.socket (socket.AF_IEAT socket.SOCK.STREAM)
colient_socket.connent ((“IP地址”,端口号))
data =“你”好.encode (“utf - 8”)
clinet_socket.send(数据)
recv_data = client_socket (1024) .decode (utf - 8)
打印(recv_data)
client.close()

  1. tcp服务端开发流程
    创建服务端口
    绑定端口
    设置监听
    等待客户端连接
    接收数据
    发送数据
    关闭服务端

进口套接字
srevent_socket = socket.socket (socket.AF_IEAT socket.SOCK_STREAM)
srevent_socket.setsockopt (socket.SOL_SOCKET socket.SO_REUSEADDR,真的)
srevent_socket.bind ((“ip地址”,端口号))
srevent_socket.listen (128)
client,ip_port = srevent_socket.accept()
print(“客户端{}使用{}”.format(ip_port[0],ip_port[1]))
while True:
data = client.recv(1024).decode(‘UTF-8’)
if len(data)== 0:
client.close()
else:
print(data)
data = data.encode(‘UTF-8’)
client.send(data)
client.close()
srevent.close()

7 .多任务版服务端开发流程
def任务():

进口套接字
进口线程
srevent_socket=socket.socket(socket.AF_IEAT,socket.SOCK_STREAM)
srevent_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
srevent_socket.bind(('ip地址‘,端口号))
srevent_socket.listen(128)
client,ip_port = srevent_socket.accept()
print(“客户端{}使用{}”.format(ip_port[0],ip_port[1]))
while True:
data = client.recv (1024) .decode (“utf - 8”)
如果len(数据)= = 0:
client.close ()
其他:
打印(数据)
data = data.encode (“utf - 8”)
client.send(数据)
client.close ()
srevent.close ()
如果__名字__= = ‘main’:
t =threading.Thread(target=task())
t.start()
#根据服务端开发流程自定义多线程位置

8.发送和recv原理刨析
发送和recv会把数据先放在缓冲区,等达到一定数量后进行发送

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值