建立基础服务端和客户端
服务端
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("127.0.0.1", 50000))
s.listen(2) # 允许挂起多少个连接
client_conn, client_addr = s.accept()
print(client_conn, client_addr)
client_conn.send("大爷,您竟来了!!!".encode())
data = client_conn.recv(1024)
print(data.decode())
client_conn.close()
s.close()
客户端
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("127.0.0.1", 50000))
data = client.recv(1024)
print(data.decode())
client.send("你说呢???".encode())
client.close()
测试
循环发送数据
第一次接触就这么交待了,只说了一句话,感觉不够过瘾,如何实现更多的交互呢?简单,只需要让客户端不断的发,服务端不断的收就可以了,写个循环搞定
服务端
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("127.0.0.1", 50000))
server.listen(2)
print("-----开始等待客户端连接-----")
while True:
client_conn, client_addr = server.accept()
print(f"got a new connetcion :{client_addr}")
while True:
data = client_conn.recv(1024) # 阻塞的
if not data: # 客户端断开了
print(f"close a connection :{client_addr}")
break
print(f"from client {client_addr}:{data.decode()}")
client_conn.send(data.decode().upper().encode())
client_conn.close()
server.close()
客户端
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("127.0.0.1", 50000))
while True:
msg = input(">>>: your msg:").strip()
client.send(msg.encode())
if not msg: break
server_response = client.recv(1024)
print(f"from server:{server_response.decode()}")
client.close()