SocketServer实现网络服务器,socket实现客户端

时间:2019-10-15
本文章向大家介绍SocketServer实现网络服务器,socket实现客户端,主要包括SocketServer实现网络服务器,socket实现客户端使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

python使用SocketServer实现网络服务器

SocketServer模块简化了网络服务器的编写。在进行socket创建时,使用SocketServer会减少创建步骤,而且它内部提供了4个类:TCPServer,UDPServer,UnixStreamServer,UnixDatagramServer这4个类是同步进行处理的; 另外提供ForkingMixIn和ThreadingMixIn这两个类来支持异步。


案例

Python3.6服务器端代码为

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
#coding:utf-8
 
import socketserver
from time import ctime
 
print("=====================SocketServer TCP服务器=====================");
 
HOST = '' 
PORT = 8888#端口号
ADDR = (HOST, PORT)
 
class MyRequestHandler(socketserver.StreamRequestHandler):  #StreamRequestHandler实现TCP/UDP服务器的服务处理器
    def handle(self):  #重写handle方法
        print('连接到:', self.client_address)
        data = self.rfile.readline().strip()
        print(data)
        self.wfile.write(('[%s] %s' % (ctime(), data.decode('utf-8')).encode('utf-8'))
 
tcpServer = socketserver.TCPServer(ADDR, MyRequestHandler)
print('等待连接...')
tcpServer .serve_forever()

客户端代码为

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#coding:utf-8
 
from socket import  *
 
print("=====================SocketServer TCP客户端=====================");
 
HOST = '127.0.0.1'
PORT = 8888
BUFSIZ = 1024
ADDR = (HOST, PORT)
 
while True:
    tcpCli = socket(AF_INET, SOCK_STREAM)   #创建客户端套接字
    tcpCli.connect(ADDR)   #发起TCP连接
    data = input('> '#接收用户输入信息
    if not data:   #如果用户输入的内容是否为空
        break
    tcpCli.send(data.encode('utf-8'))   #客户端发送消息,必须发送字节数组
    buffer = tcpCli.recv(BUFSIZ)  #接收回应消息,接收到的是字节数组
    if not buffer:   #如果接收服务器信息失败,或响应消息为空
        break
    print(buffer.decode('utf-8'))   #打印回应消息
    tcpCli.close() #关闭客户端socket
更多技术资讯可关注:gzitcast

原文地址:https://www.cnblogs.com/heimaguangzhou/p/11678945.html