'''
Python TCP代理服务器 by 郑瑞国
1、建立网络套接字s
2、绑定地址
3、监听
4、接受客户端连接
5、多线程处理客户端消息
6、建立网络套接字proxy_client
7、与服务器建立网络连接
8、收发信息
'''
import time
import socket
import threading
s = socket.socket() #1、建立网络套接字s
s.bind(('0.0.0.0',9998)) #2、绑定地址
s.listen(5) #3、监听
def handle(client,addr,server_ip,server_port):
proxy_client = socket.socket() #6、建立网络套接字proxy_client
proxy_client.connect((server_ip,server_port)) #7、与服务器建立网络连接
while True: #8、收发信息
try:
text = client.recv(1024).decode()
time.sleep(0.1)
if text:
proxy_client.send(text.encode())
print('send to server:'+server_ip,str(server_port),'>>',text)
text=''
re = proxy_client.recv(1024).decode()
if re:
client.send(re.encode())
print('resp to client:'+addr[0],addr[1],'>>',re)
re=''
except:
print(addr[0],addr[1],'>>say goodby')
break
def proxy():
while True:
client,addr=s.accept() #4、接受客户端连接
threading._start_new_thread(handle,(client,addr,'127.0.0.1',9999)) #5、多线程代理服务
if __name__ == '__main__':
proxy()
'''
Python TCP 客户端(配合Tcp代理服务器) by 郑瑞国
1、建立网络套接字c
2、建立网络连接
3、收发信息
'''
import socket
c = socket.socket() #1、建立网络套接字c
c.connect(('127.0.0.1',9998)) #2、建立网络连接
while True: #3、收发信息
text = input('send:')
if not text:
continue
c.send(text.encode())
re = c.recv(1024).decode()
print(re)
'''
Python socket TCP多线程服务器 by 郑瑞国
1、建立网络套接字s
2、绑定地址
3、监听
4、接受客户端连接
5、多线程处理客户端消息
'''
import socket
import threading
s = socket.socket() #1、建立网络套接字s
s.bind(('0.0.0.0',9999)) #2、绑定地址
s.listen(5) #3、监听
def 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
while True:
client,addr=s.accept() #4、接受客户端连接
threading._start_new_thread(handle,(client,addr)) #5、多线程处理客户端消息