1,tcp
tcp服务端:
import socket import threading import time s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind(('127.0.0.1',9999)) s.listen(5) print('Waiting for connection...') def tcplink(sock,addr): print('Accept new connect 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(('hello,%s' % data.decode('utf-8')).encode('utf-8')) sock.close() print('connection from %s:%s close.' % addr) while True: sock,addr = s.accept() t = threading.Thread(target=tcplink, args = (sock,addr)) t.start()
tcp 客户端
import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # socket.AF_INET ipv4,socket.SOCK_STREAM tcp连接 s.connect(('127.0.0.1',9999)) print(s.recv(1024).decode('utf-8')) for data in [b'michael',b'tracy',b'sarah']: s.send(data) print(s.recv(1024).decode('utf-8')) s.send(b'exit') s.close()
2,udp
udp服务端:
import socket s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #udp s.bind(('127.0.0.1',9999)) print('build udp on 9999....') while True: data,addr = s.recvfrom(1024) print('received from %s:%s.' % addr) s.sendto(b'hello,%s!' % data,addr)
udp客户端:
import socket s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) for data in [b'mike',b'jack',b'rose']: s.sendto(data,('127.0.0.1',9999)) print(s.recv(1024).decode('utf-8')) s.close()