码迷,mamicode.com
首页 > 其他好文 > 详细

认识socketserver

时间:2018-10-07 14:37:50      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:main   info   ==   cps   输入   forever   request   客户端   bsp   

  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

标签:main   info   ==   cps   输入   forever   request   客户端   bsp   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!