以下是一个简单的 Python 示例,展示了如何在 Linux 下使用套接字进行基本的网络通信,包括创建服务器和客户端。
服务器端代码
import socket
# 创建一个IPv4 TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定服务器地址和端口
server_address = ('127.0.0.1', 12345) # 服务器IP和端口
server_socket.bind(server_address)
# 开始监听连接
server_socket.listen(5) # 最大连接数为5
print("服务器启动,等待客户端连接...")
while True:
# 等待客户端连接请求
client_socket, client_address = server_socket.accept()
try:
print(f"接收来自 {client_address} 的连接")
# 接收客户端发送的数据
data = client_socket.recv(1024)
if data:
print(f"接收到的数据:{data.decode('utf-8')}")
# 发送响应数据给客户端
response = "收到你的消息了"
client_socket.sendall(response.encode('utf-8'))
else:
print("客户端断开连接")
break
finally:
# 关闭客户端连接
client_socket.close()
# 关闭服务器套接字
server_socket.close()
客户端代码
import socket
# 创建一个IPv4 TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器地址和端口
server_address = ('127.0.0.1', 12345) # 服务器IP和端口
client_socket.connect(server_address)
try:
# 发送数据给服务器
message = "你好,这是来自客户端的消息"
client_socket.sendall(message.encode('utf-8'))
# 接收服务器的响应数据
data = client_socket.recv(1024)
if data:
print(f"接收到服务器的响应:{data.decode('utf-8')}")
finally:
# 关闭客户端套接字
client_socket.close()
示例说明
服务器端:创建一个 TCP 套接字,绑定到本地地址(127.0.0.1)和指定端口(12345),然后开始监听连接。通过
accept()
方法接受客户端的连接请求,处理客户端发送的消息,并发送响应给客户端,最后关闭连接。客户端:创建一个 TCP 套接字,连接到指定的服务器地址和端口(与服务器相同),然后发送一条消息给服务器,接收服务器的响应并打印出来,最后关闭连接。
这个例子展示了基本的客户端-服务器模型,适用于本地的简单网络通信示例。在实际应用中,可能会涉及更复杂的网络协议和更多的错误处理逻辑。