昨天我们写了tcp客户端的多线程,今天我们更新一下服务器端的多线程
话不多说,上程序
from socket import *
import threading
tcp_socket = socket(AF_INET, SOCK_STREAM)
tcp_socket.bind(('', 8080)) # 绑定端口
tcp_socket.listen(128) # 使套接字变为被动套接字
client_socket, client_addr = tcp_socket.accept() # 新建套接字用来接收客户端信息,后面为地址
def recv_data(client_info):
global client_addr
while True:
recv_data = client_info.recv(1024)
if recv_data:
print('接收的信息为:%s 接受自:%s' % (recv_data.decode('utf-8'), client_addr))
elif recv_data == 'exit':
break
def send_data(client_info):
while True:
send_msg = input('请输入要发送的内容\n')
client_info.send(send_msg.encode('utf-8'))
if send_data == 'exit':
break
lock = threading.Lock()
if __name__ == '__main__':
t1 = threading.Thread(target=recv_data, args=(client_socket,))
t2 = threading.Thread(target=send_data, args=(client_socket,))
t1.start()
t2.start()
上图