TCP服务端与客户端编程实例
首先,我们需要了解TCP协议的基本概念。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的通信协议,它为应用程序提供了一种可靠的网络通信机制。在TCP中,每个数据包都有一个序列号和确认号,以确保数据的完整性和顺序性。
接下来,我们将创建一个简单的TCP服务器和客户端程序。
1. 服务器端代码
```python
import socket
# 创建一个socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_address = ('localhost', 8080)
server_socket.bind(server_address)
# 开始监听连接
server_socket.listen(5)
print("等待客户端连接...")
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print("客户端已连接,地址:", client_address)
while True:
# 从客户端接收数据
data = client_socket.recv(1024)
if not data:
break
print("收到客户端数据:", data.decode())
# 向客户端发送数据
client_socket.send("你好,我是服务器!".encode())
# 关闭连接
client_socket.close()
server_socket.close()
```
2. 客户端代码
```python
import socket
# 创建一个socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
server_address = ('localhost', 8080)
client_socket.connect(server_address)
# 向服务器发送数据
data = "你好,我是客户端!".encode()
client_socket.send(data)
# 接收服务器返回的数据
response = client_socket.recv(1024)
print("收到服务器响应:", response.decode())
# 关闭连接
client_socket.close()
```
运行上述代码,你将看到以下输出:
```
等待客户端连接...
客户端已连接,地址: (
收到客户端数据: 你好,我是服务器!
服务器响应: 你好,我是客户端!
```
这个示例展示了如何使用Python的`socket`库来创建一个简单的TCP服务器和客户端程序。在这个例子中,服务器端和服务端都使用了一个固定的IP地址('localhost')和端口号(8080)。客户端和服务器之间通过TCP协议进行通信,服务器端接收客户端发送的数据,并向客户端发送响应。