socket_server 基本用法1

Posted flags-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

 

以上是关于socket_server 基本用法1的主要内容,如果未能解决你的问题,请参考以下文章

Python中的基本函数及其常用用法简析

c_cpp 加载源图像固定用法(代码片段,不全)

linux如何设置启动命令服务:java -jar /huizhi/zgrb/bin/socket_server.jar

SQL Select 语句的用法

网络编程- socket_server_登录demo

JavaSE 方法的使用