#sokect编程 #1 TCP变成 #1.1 、客户端 import socket # 创建一个 socket: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立连接: s.connect(('www.sina.com.cn', 80)) s.send(b'GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nConnection:close\r\n\r\n') buffer = [] while True: d = s.recv(1024) if d: buffer.append(d) else: break data = b''.join(buffer) print(data.decode()) s.close() #1.2 服务器 import socket import threading import time def tcplink(sock, addr): print('a 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).encode('utf-8')) sock.close() print('connet from %s:%s closed' %addr) # 创建一个 socket: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('127.0.0.1',9999)) s.listen(5) print('wait............') while True: sock,addr = s.accept() t = threading.Thread(target=tcplink,args=(sock,addr)) t.start() #创建一个客户端连接服务器 import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1',9999)) print(s.recv(1024).decode('utf-8')) for data in [b'Mic',b'Tra',b'Sar']: s.send(data) print(s.recv(1024).decode('utf-8')) s.send(b'exit') s.close() #2、UDP链接 #2.1 服务器 import socket import threading import time s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定端口: s.bind(('127.0.0.1', 9999)) print('Bind UDP on 9999...') while True: # 接收数据: data, addr = s.recvfrom(1024) print('Received from %s:%s.' % addr) s.sendto(b'Hello, %s!' % data, addr) #2.2客户端 import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) for data in [b'Michael', b'Tracy', b'Sarah']: # 发送数据: s.sendto(data, ('127.0.0.1', 9999)) # 接收数据: print(s.recv(1024).decode('utf-8')) s.close()
socket编程
最新推荐文章于 2022-11-04 08:00:00 发布