'''
Python socket TCP多线程服务器 by 郑瑞国
1、建立网络套接字s
2、绑定地址
3、监听
4、接受客户端连接
5、多线程处理客户端消息
'''
import socket
import threading
def server_handle(client,addr):
'''处理客户端消息'''
while True:
try:
text = client.recv(1024)
if not text:
client.close()
client.send(text)
print(addr[0],addr[1],'>>',text.decode())
except:
print(addr[0],addr[1],'>>say goodby')
break
def tcp_server():
'''TCP多线程服务器'''
s = socket.socket() #1、建立网络套接字s
s.bind(('0.0.0.0',9999)) #2、绑定地址
s.listen(5) #3、监听
print("TCP server starting on " +socket.gethostbyname(socket.gethostname())+":9999......")
while True:
client,addr=s.accept() #4、接受客户端连接
threading._start_new_thread(server_handle,(client,addr)) #5、多线程处理客户端消息
'''
Python TCP 客户端(配合socket多线程服务器) by 郑瑞国
1、建立网络套接字c
2、建立网络连接
3、收发信息
'''
def tcp_client(ip):
'''TCP 客户端'''
c = socket.socket() #1、建立网络套接字c
c.connect((ip,9999)) #2、建立网络连接
while True: #3、收发信息
text = input('send:')
if not text:
continue
c.send(text.encode())
re = c.recv(1024).decode()
print(re)
if __name__ == '__main__':
tcp_server()
#ip = input('input server ip:')
#tcp_client(ip)