zoukankan      html  css  js  c++  java
  • python3 在一个进程内开启多个线程实现socket通讯

    # -*- coding: utf-8 -*-
    import threading
    from socket import *
    from threading import Thread
    
    
    def talk(conn):
        while 1:  # 循环通讯
            try:
                from_client_msg = conn.recv(1024)
                if not from_client_msg:break
                print("线程<%s>来自客户端的消息:%s" %(threading.current_thread().getName(), from_client_msg))
                conn.send(from_client_msg.upper())
            except:
                break
        conn.close()
    
    
    if __name__ == '__main__':
        '''一个进程里开多线程实现socket通讯'''
        server = socket()
        ip_port = ("127.0.0.1", 8001)
        server.bind(ip_port)
        server.listen(5)
        while 1:  # 循环连接
            conn, addr = server.accept()
            t = Thread(target=talk, args=(conn,))
            t.start()
        server.close()
    
    
    # 线程<Thread-1>来自客户端的消息:b'aaa'
    # 线程<Thread-2>来自客户端的消息:b'bbb'
    # 线程<Thread-3>来自客户端的消息:b'ccc'
    # 线程<Thread-4>来自客户端的消息:b'dddd'
    # 线程<Thread-5>来自客户端的消息:b'eeee'
    # 线程<Thread-6>来自客户端的消息:b'ffff'
    # -*- coding: utf-8 -*-
    from socket import *
    
    
    client = socket()
    ip_port = ("127.0.0.1", 8001)
    client.connect(ip_port)
    while 1:  # 循环通讯
        inp = input(">>:").strip()
        if not inp: continue
        if inp.upper() == "Q": break
        client.send(inp.encode())
        from_server_msg = client.recv(1024)
        print("来自服务端的消息:", from_server_msg)
    client.close()
  • 相关阅读:
    「SOL」工厂选址(BZOJ)
    「NOTE」数论小札
    Flask实现简单的群聊和单聊
    python基础总结
    基于Flask和百度AI实现与机器人对话
    django创建路径导航
    django中权限控制到按钮级别
    django中非菜单权限的归属
    MongoDB的增删改查
    jQuery于js的区别和联系
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/11037505.html
Copyright © 2011-2022 走看看