zl程序教程

您现在的位置是:首页 >  Python

当前栏目

python进阶__用socket封装TCP

2023-03-14 09:51:06 时间

想要理解socket协议,点击链接,出门左转

 一、TCP 通信的服务器端编程的基本步骤:

  1. 服务器端先创建一个 socket 对象。
  2. 服务器端 socket 将自己绑定到指定 IP 地址和端口。
  3. 服务器端 socket 调用 listen() 方法监听网络。
  4. 程序采用循环不断调用 socket 的 accept() 方法接收来自客户端的连接
 1 #创建socket 对象
 2 s = socket.socket()
 3 #将socket 绑定到本机IP 地址和端口
 4 s.bind (('192.168.1.88', 30000))
 5 #服务器端开始监听来自客户端的连接
 6 s.listen()
 7 while True:
 8     #每当接收到客户端socket 的请求时,该方法就返回对应的socket 和远程地址
 9     c, addr = s.accept()
10     ...

 

二、TCP 通信的客户端编程的基本步骤:

  1. 客户端先创建一个 socket 对象。
  2. 客户端 socket 调用 connect() 方法连接远程服务器。
 1 import socket
 2 import struct
 3 
 4 class SelfPackage:#将接口内容封装在类SelfPackage中
 5     def __init__(self,ip,port):
 6         self.IP= ip
 7         self.Port= port
 8         self.stopthread = True
 9         self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#创建客户端套接字,SOCK_STREAM对应协议类型为TCP
10         self.client.connect((self.IP, self.Port))
11 
12     def client_connect(self,ip,port):#客户端连接IP及端口
13         self.client=socket.socket()
14         self.client.connect((ip,port))
15         return self.client
16 
17     def get_current_msg(self):#客户端接收数据
18         status_msg = self.client.recv(2664)#每次接收2664字节
19         while len(status_msg)<2664: #如果接收到的字节长度不满2664,就要补齐,不能丢掉
20             status_msg += self.client.recv(2664)
21         return status_msg
22         
23     def client_close(self):#关闭客户端
24         self.client.close()

 创建客户端实例:

socket_tcp1=SelfPackage(ip="192.168.1.1",port=2222)

 

 

中国有句古话:祸福无门,惟人自招,善恶之报,如影随形。细看世间事,都有因果可循,而这因果,就藏在每个人的选择里。你选择善良做人,温柔待人,勤恳做事,总有一天,会被世界温柔以待,得到相应的回报,你选择尖酸刻薄,处处算计,总有一天,会自食恶果,殃及自身。善待别人,就是善待自己;尊重别人,就是庄严自己;宽容别人,就是放过自己。