码迷,mamicode.com
首页 > 其他好文 > 详细

socket_server 基本用法1

时间:2018-09-03 02:16:57      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:__name__   bsp   turn   server   reset   信息   hand   rev   参数   

使用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()

 

socket_server 基本用法1

标签:__name__   bsp   turn   server   reset   信息   hand   rev   参数   

原文地址:https://www.cnblogs.com/flags-blog/p/9575761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!