zoukankan      html  css  js  c++  java
  • day45-多线程(server和多个client通信)

    #server:
    import socket
    from threading import Thread
    
    def func(conn):
        conn.send(b'hello client')
        ret = conn.recv(1024).decode('utf-8')
        print(ret)
        conn.close() #conn.close()放在这里是为了让每一个连接都关闭,如果放在外面就只能关闭最后一个连接。
    
    sk = socket.socket()
    sk.bind(('127.0.0.1',8080))
    sk.listen()
    
    while True:
        conn,addr = sk.accept()
        t = Thread(target=func,args=(conn,))
        t.start()
    
    sk.close() #如果sk.close()放在func的里面,第一个连接聊完天之后就关闭了整个通信,后面的连接都无法通信,所以必须放在外面。
    
    #client:
    import socket
    sk = socket.socket()
    sk.connect(('127.0.0.1',8080))
    ret = sk.recv(1024).decode('utf-8')
    print(ret)
    msg = input('>>>')
    sk.send(msg.encode('utf-8'))
    sk.close()
  • 相关阅读:
    网络IO
    进程与线程
    计算机网络
    操作系统
    刷题笔记
    fasd
    线程池
    epoll反应堆
    read函数
    dup与dup2
  • 原文地址:https://www.cnblogs.com/python-daxiong/p/12142770.html
Copyright © 2011-2022 走看看