网络编程_socketserver

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程_socketserver相关的知识,希望对你有一定的参考价值。

一、socketserver 网络编程

 

1、socketserver支持多用户并发处理;
2、socketserver是对socket的再封装;
处理步骤:
1、创建一个socketserver类
2、继承BaseRequestHandle类,并且重写handle方法;
3、实例4个类中的任意一个,并且传递IP和上面创建的socketserver类;
4、server.handle_request()只处理一个请求;
server.server_forever()处理多个请求;
5、TCPServer 支持单线程;
ThreadingTCPServer 支持多并发;

 

服务器端代码如下:

import socketserver
#自己写一个请求处理类,继承BaseRequestHandler类
class MyTCPServer(socketserver.BaseRequestHandler):
#重写Handle方法,所有与客户端的交互,均在Handle里;
def handle(self):
while True:
#每一个请求过来,都会实例化一个;
self.data = self.request.recv(1024).strip()
print("{}wrote..{}".format(self.client_address[0],self.client_address[1]))
self.request.send(self.data.upper())


if __name__ ==‘__main__‘:
host,port = "localhost",9999
#IP地址和自己定义的类传入参数;
#ThreadingTCPServer 支持多并发;

#TCPServer 支持单线程;
server = socketserver.ThreadingTCPServer((host,port),MyTCPServer)
server.serve_forever()
客户端与socket写法一致即可:
#-*-coding:utf-8-*-

import socket

client = socket.socket()
client.connect(("localhost",9999))
while True:
data = input(">>>:")
client.send(data.encode("utf-8"))
data = client.recv(1024)
print (data.decode())

以上是关于网络编程_socketserver的主要内容,如果未能解决你的问题,请参考以下文章

Python网络编程之socketserver实现多并发

day8 socket socketserver 异常 断言

python学习_day41_socketserver模块

网络编程之socketserver初识

socketserver

python学习道路(day9note)(socketserver编程,ftp)