Python中TCP客户端和服务器的主要区别是:
- 客户端需要连接服务器端指定的IP和端口
## python www.itzhimei.com 代码
# 客户端
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('服务器IP', 8080))
- 服务器端需要绑定端口,并监听连接
## python www.itzhimei.com 代码
# 服务器端
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('', 8080))
server.listen()
conn, addr = server.accept()
- 客户端主动发起通信,服务器端被动响应
客户端可以在任意时刻发送请求给服务器。而服务器需要循环接收客户端请求:
## python www.itzhimei.com 代码
# 服务器端
while True:
data = conn.recv(1024)
# ...
- 服务器端可以同时处理多个客户端连接
通过多线程或多进程,服务器可以同时处理来自多个客户端的连接:
## python www.itzhimei.com 代码
# 服务器端
while True:
conn, addr = server.accept()
thread = threading.Thread(target=handle_client, args=(conn,addr))
thread.start()
- 断开连接方式不同
客户端使用close()断开连接,服务器端close()仅断开一个连接,关闭socket则断开所有连接。
综上所述,客户端主动发起连接,服务器端被动响应是两者最关键的区别。