【Python】Python实现TCP客户端和服务器有什么差别?

Python中TCP客户端和服务器的主要区别是:

  1. 客户端需要连接服务器端指定的IP和端口
## python www.itzhimei.com 代码
# 客户端
import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('服务器IP', 8080))
  1. 服务器端需要绑定端口,并监听连接
## python www.itzhimei.com 代码
# 服务器端
import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
server.bind(('', 8080))
server.listen()

conn, addr = server.accept() 
  1. 客户端主动发起通信,服务器端被动响应
    客户端可以在任意时刻发送请求给服务器。而服务器需要循环接收客户端请求:
## python www.itzhimei.com 代码
# 服务器端 
while True:
    data = conn.recv(1024)
    # ...
  1. 服务器端可以同时处理多个客户端连接
    通过多线程或多进程,服务器可以同时处理来自多个客户端的连接:
## python www.itzhimei.com 代码
# 服务器端
while True:
    conn, addr = server.accept()
    thread = threading.Thread(target=handle_client, args=(conn,addr))
    thread.start()
  1. 断开连接方式不同
    客户端使用close()断开连接,服务器端close()仅断开一个连接,关闭socket则断开所有连接。

综上所述,客户端主动发起连接,服务器端被动响应是两者最关键的区别。