socket_server 基本用法1

使用socketserver基本遵循下面几个步骤

1、创建一个类,继承socketserver.BaseRequestHandler;并且重写里面的handle方法

2、实例化TCP_server,将ip地址 以及步骤1中创建的类传递进去

3、使用server_forever处理client发过来的请求。

 

sockerserver 服务端代码

 1 # _*_ coding:utf-8 _*_
 2 import socketserver
 3 
 4 class My_tcphandler(socketserver.BaseRequestHandler): #继承base类,创建自己的TCP处理类
 5     def handle(self): #重写base类中handle方法
 6         while True:  #持续和客户端进行数据交互
 7             try:
 8                 self.data = self.request.recv(1024)  #handle中连接的描述不在像socket中的conn,而是self.request进行收发数据
 9                 print('self.client_address:',self.client_address)
10                 print('recv data:',self.data)
11                 self.request.send(self.data.upper()) #可以直接对字符串进行操作???
12             except ConnectionResetError as e:
13                 print('err',e)
14                 break
15 
16 if  __name__ == "__main__":
17     host,port = 'localhost',9999
18     server = socketserver.TCPServer((host,port),My_tcphandler) #实例化server,将地址信息以及自己重写的base类作为参数传递进去。
19     server.serve_forever() #调用实例的forever方法

  sockerserver 客户端代码

 1 # _*_ coding:utf-8 _*_
 2 import socket,hashlib
 3 client = socket.socket() #创建连接描述符,指定socket连接的网络层和传输层协议,默认使用ipv4/tcp
 4 client.connect(("localhost",9999)) #使用连接描述符连接server,server信息以元组形式传入,包含ip地址和端口号
 5 while True:
 6     cmd = input("input your command,server will return upper format:")
 7     if len(cmd) == 0:
 8         continue
 9     client.send(cmd.encode(encoding='utf-8'))
10     print('recv data:',client.recv(1024).decode() )
11 client.close()

 

转载于:https://www.cnblogs.com/flags-blog/p/9575761.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值