Python tcp socket程式設計詳解
初學腳本語言Python,測試可用的tcp通訊程式:
##伺服器:
#!/usr/bin/env python # -*- coding: utf-8 -*- import socket import threading import time def tcplink(sock, addr): print('Accept new connection from %s:%s...' % addr); sock.send(b'Welcome!!!'); while True: data = sock.recv(1024); time.sleep(1); if not data or data.decode('utf-8') == 'exit': break; sock.send(b'Hello, %s!' % data); sock.close(); print('Connection from %s:%s closed.' % addr); if __name__ == "__main__": s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.bind(('127.0.0.1', 9090)); s.listen(8); #监听8个客户端; print('waiting for connection...'); while True: sock, addr = s.accept(); t = threading.Thread(target=tcplink, args=(sock,addr)); t.start();
客戶端:
#!/usr/bin/env python # -*- coding: utf-8 -*- import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect(('127.0.0.1', 9090)); print(s.recv(1024).decode('utf-8')); for data in [b'lk', b'aa', b'bb']: s.send(data); print(s.recv(1024).decode('utf-8')); s.send(b'exit'); s.close();