zoukankan      html  css  js  c++  java
  • 使用子线程来完成链接循环和通信循环

    #客户端
    import socket
    
    soc = socket.socket()
    soc.connect(('127.0.0.1',8090))
    while True:
        data = input('>>:')
        soc.send(data.encode('utf8'))
        data = soc.recv(1024)
        print(data)
    
    #服务端
    import socket
    from multiprocessing import Process
    
    
    # class pro(Process):
    #     def __init__(self,conn,addr):
    #         super().__init__()
    #         self.conn = conn
    #         self.addr = addr
    #     def run(self) -> None:
    #         while True:
    #             data = self.conn.recv(1024)
    #             print(data)
    #             self.conn.send('ok'.encode('utf8'))
            # self.conn.close()
    
    def pro(conn,addr):
        print(f'客户{addr}连接了')
        while True:
            try:
                data = conn.recv(1024)
                print(data)
                conn.send('ok'.encode('utf8'))
            except ConnectionResetError:
                conn.close()
                break
    
    
    if __name__ == '__main__':
        soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
        soc.bind(('127.0.0.1', 8090))
        soc.listen(5)
        while True:
            conn, addr = soc.accept()
            Process(target=pro,args = (conn, addr)).start()
    
    
  • 相关阅读:
    XML HTML
    git教程
    GIT过滤
    HTTP
    golang json
    golang type 和断言 interface{}转换
    tcp参数设置
    tcp状态-TIME_WAIT与CLOSE_WAIT带来的坑
    tcp状态
    文件描述符与socket连接
  • 原文地址:https://www.cnblogs.com/cheng825/p/11508160.html
Copyright © 2011-2022 走看看