认识socketserver

Posted whylinux

tags:

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

  1.服务端

# 如果socket起一个tcp服务,在同一个时间只能和一个客户端通信

# 如果socketserver起一个服务,在同一个时间就可以和多个客户端通信了

# socketserver
    # 是基于soccekt又进行了一层的封装

import socketserver

# 要起socketserver,先写一个类
class MyServer(socketserver.BaseRequestHandler):     # 必须继承一个socketserver处理基础请求的基类
    def handle(self):   # 必须有一个handle函数
        # print(self.request.recv(1024))    # request相当于一个conn(一个客户端连接上来的连接符)
        while True:
            msg = self.request.recv(1024).decode(utf-8)

            print(msg)
            info = input(输入发送到客户端的内容:)
            self.request.send(info.encode(utf-8))

if __name__ == __main__:
    server = socketserver.ThreadingTCPServer((127.0.0.1, 8080), MyServer) # 目的用多线程处理每个客户端连接请求.参数为ip端口与Myserver类名,得到一个对象
    server.serve_forever()  # 永远起一个socketserver tcp服务.

 

  客户端1

import socket

sk = socket.socket()

ip_port = (127.0.0.1, 8080)

sk.connect(ip_port)

while True:
    msg = input(发送到服务端的内容: )

    if msg == q:
        sk.send(bq)
        break

    sk.send((饿了么: + msg).encode(utf-8))
    ret = sk.recv(1024).decode(utf-8)
    print(ret)

sk.close()

 

  客户端2

import socket

sk = socket.socket()

ip_port = (127.0.0.1, 8080)

sk.connect(ip_port)

while True:
    msg = input(发送到服务端的内容: )

    if msg == q:
        sk.send(bq)
        break

    sk.send((饿了么: + msg).encode(utf-8))
    ret = sk.recv(1024).decode(utf-8)
    print(ret)

sk.close()

 

以上是关于认识socketserver的主要内容,如果未能解决你的问题,请参考以下文章

socketserver.py代码阅读笔记

socketserver.py代码阅读笔记

socketserver.py代码阅读笔记

socketserver实现并发

socketserver

Python网络编程篇之socketserver