首页 > 其他 > 详细

网络编程之socketserver初识

时间:2018-02-23 11:31:07      阅读:241      评论:0      收藏:0      [点我收藏+]
网络编程之socketserver初识
Server
技术分享图片
#!/usr/bin/env python
# @Author   : "Wjl"
# @Date     : 2017/12/22
# @Time     : 11:07
# @SoftWare : PyCharm
# @File     : Server端并发聊天_Server.py

import socketserver

"""
socketserver模块是python为我们写好的一个封装了网络操作相关的模块
比我们自己手写socket方便
"""

class MyServer(socketserver.BaseRequestHandler):  # 必须继承socketserver.BaseRequestHandler

    def handle(self):  # 必须重写父类的handle方法,我们的逻辑就写在handle方法中
        print("服务端启动...")
        while True:
            conn = self.request  # self.request 就等于 TcpSocket.accept() 返回的socket对象
            print(self.client_address)  # self.client_address 就等于 TcpSocket.accept 返回的addr元组
            while True:
                # 将接收到的数据原路返回
                client_data = conn.recv(1024)
                print(str(client_data, "utf8"))
                print("waiting...")
                conn.sendall(client_data)
            conn.close()

if __name__ == __main__:
    server = socketserver.ThreadingTCPServer((127.0.0.1, 8888), MyServer)  # 要实现并发就必须调用ThreadingTCPServer
    server.serve_forever()  # 启动
View Code

 

Client
技术分享图片
#!/usr/bin/env python
# @Author   : "Wjl"
# @Date     : 2017/12/22
# @Time     : 11:07
# @SoftWare : PyCharm
# @File     : Server端并发聊天_Client.py

import socket

TcpSocket = socket.socket()

TcpSocket.connect((127.0.0.1, 8888))

while True:
    user_input = input(>>> )
    if user_input == q:
        break

    TcpSocket.send(user_input.encode(utf-8))
    data = TcpSocket.recv(1024)
    print(data.decode(utf-8))

TcpSocket.close()
View Code

 

网络编程之socketserver初识

原文:https://www.cnblogs.com/xiaofengchu/p/8461191.html

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