一,基础版服务器端客户端(一收一发,只有一个客户端链接)
服务器端:
1 #Author : Kelvin 2 #Date : 2019/1/28 22:10 3 from socket import * 4 server=socket.socket(AF_INET,SOCK_STREAM) 5 server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #解决服务器重启时地址被占用的问题 6 server.bind(("127.0.0.1",8888)) 7 server.listen(5) 8 print("服务器已经启动...") 9 conn,addr=server.accept() 10 res=conn.recv(1024).decode("utf8") 11 print("服务器:",res) 12 conn.send("服务器收到请求!".encode()) 13 conn.close() 14 server.close()
客户端:
1 #Author : Kelvin 2 #Date : 2019/1/28 22:10 3 import socket 4 client=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 5 client.connect(("127.0.0.1",8888)) 6 client.send("客户端请求连接!".encode()) 7 res=client.recv(1024).decode("utf8") 8 print("客户端:",res) 9 client.close()
二,可交流版服务器端客户端(多收多发,只有一个客户端链接)
服务器端:
1 #Author : Kelvin 2 #Date : 2019/1/28 22:10 3 from socket import * 4 server=socket.socket(AF_INET,SOCK_STREAM) 5 server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #解决服务器重启时地址被占用的问题 6 server.bind(("127.0.0.1",8888)) 7 server.listen(5) 8 print("服务器已经启动...") 9 conn,addr=server.accept() 10 while True: 11 res=conn.recv(1024).decode("utf8") 12 print("\033[1;36;0m服务器接收:\033[0m%s"%res) 13 con=input("回复:") 14 conn.send(con.encode()) 15 conn.close() 16 server.close()
客户端:
1 #Author : Kelvin 2 #Date : 2019/1/28 22:10 3 from socket import * 4 client=socket.socket(AF_INET,SOCK_STREAM) 5 client.connect(("127.0.0.1",8888)) 6 while True: 7 con=input("回复:") 8 client.send(con.encode()) 9 print("\033[1;36;0m客户端:\033[0m%s" %con) 10 res=client.recv(1024).decode("utf8") 11 print("\033[1;36;0m服务器端:\033[0m%s"%res) 12 client.close()
三,多链接版服务器端客户端(多收多发,多个客户端链接)
服务器端:
1 #Author : Kelvin 2 #Date : 2019/1/28 22:10 3 from socket import * 4 server=socket.socket(AF_INET,SOCK_STREAM) 5 server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #解决服务器重启时地址被占用的问题 6 server.bind(("127.0.0.1",8888)) 7 server.listen(5) 8 while True: 9 print("服务器已经启动...") 10 conn,addr=server.accept() 11 while True: 12 try: 13 res=conn.recv(1024).decode("utf8") 14 print("\033[1;36;0m服务器接收:\033[0m%s"%res) 15 con=input("回复:") 16 conn.send(con.encode()) 17 except Exception: 18 break 19 conn.close() 20 server.close()
客户端1:
1 #Author : Kelvin 2 #Date : 2019/1/28 22:10 3 import socket 4 client=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 5 client.connect(("127.0.0.1",8888)) 6 while True: 7 con=input("回复:") 8 client.send(con.encode()) 9 print("\033[1;36;0m客户端1:\033[0m%s" %con) 10 res=client.recv(1024).decode("utf8") 11 print("\033[1;36;0m服务器端:\033[0m%s"%res) 12 client.close()
客户端2:
1 #Author : Kelvin 2 #Date : 2019/1/28 22:10 3 import socket 4 client=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 5 client.connect(("127.0.0.1",8888)) 6 while True: 7 con=input("回复:") 8 client.send(con.encode()) 9 print("\033[1;36;0m客户端2:\033[0m%s" %con) 10 res=client.recv(1024).decode("utf8") 11 print("\033[1;36;0m服务器端:\033[0m%s"%res) 12 client.close()