首页 > 其他 > 详细

认识socketserver

时间:2018-10-07 14:09:32      阅读:137      评论:0      收藏:0      [点我收藏+]

  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

原文:https://www.cnblogs.com/whylinux/p/9749998.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!