socket
TCP
服务端
1 import socket 2 sk = socket.socket() 3 sk.bind(('127.0.0.1',8080)) # 绑定ip和端口号 4 sk.listen() # Enable a server to accept connections. 5 conn,addr = sk.accept() # Wait for an incoming connection. Return a new socket 6 # representing the connection, and the address of the client. 7 while 1: 8 content = conn.recv(1024) # 接收 9 print(content.decode('utf-8'))10 conn.send(content+b'--liuyankui') # 发送11 conn.close()12 sk.close()
客户端
1 import socket2 sk = socket.socket()3 sk.connect(('127.0.0.1',8080)) #连接4 while 1:5 content = input('>>>').encode('utf-8')6 sk.send(content)7 ret = sk.recv(1024)8 print(ret.decode('utf-8'))9 sk.close()
UDP
服务端
1 import socket2 sk = socket.socket(type=socket.SOCK_DGRAM)3 sk.bind(('127.0.0.1',8080))4 msg ,addr = sk.recvfrom(1024)5 print(msg.decode('utf-8'))6 sk.sendto(b'bye',addr)7 sk.close()
用户端
1 import socket2 sk = socket.socket(type=socket.SOCK_DGRAM)3 ip_port = ('127.0.0.1',8080)4 sk.sendto(b'hello',ip_port)5 msg,addr = sk.recvfrom(1024)6 print(msg.decode('utf-8'))7 sk.close()
socketserver
server端
1 import socketserver 2 3 class MyServer(socketserver.BaseRequestHandler): 4 def handle(self): 5 while True: 6 msg = self.request.recv(1024).decode('utf-8') 7 if msg=='q':return 8 print(msg) 9 info = input('(sent to %s)>>>' %(msg[:2]))10 self.request.send(info.encode('utf-8'))11 if __name__ == '__main__':12 server = socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyServer)13 server.serve_forever()
client端
1 import socket 2 sk = socket.socket() 3 sk.connect(('127.0.0.1',8080)) 4 while 1: 5 msg = input('>>>') 6 if msg == 'q': 7 sk.send('q'.encode('utf-8')) 8 break 9 sk.send(('美团外卖:'+msg).encode('utf-8'))10 print(sk.recv(1024).decode('utf-8'))11 sk.close()