day45-多线程(socket和多个server通信)

#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()

你可能感兴趣的:(day45-多线程(socket和多个server通信))