使用套接字编程连接TCP服务器的步骤如下:
创建套接字
使用`socket.socket(socket.AF_INET, socket.SOCK_STREAM)`创建一个TCP套接字对象。这里,`socket.AF_INET`表示使用IPv4网络协议,`socket.SOCK_STREAM`指定了是TCP类型的套接字。
绑定地址和端口
使用`bind()`方法将套接字绑定到一个本地地址和端口上。例如,`tcp_socket.bind(("127.0.0.1", 8888))`将套接字绑定到本地地址`127.0.0.1`(本机回环地址)和端口`8888`。
监听连接
使用`listen()`方法开始监听连接请求。例如,`tcp_socket.listen(5)`表示允许最多5个连接排队等待处理。
接受连接请求
使用`accept()`方法接受客户端的连接请求,返回一个新的套接字对象和客户端地址。例如,`client_socket, addr = server_socket.accept()`将接受一个新的连接,并返回一个新的套接字对象`client_socket`和客户端地址`addr`。
与客户端通信
使用`send()`和`recv()`方法与客户端进行数据发送和接收。例如,`client_socket.send(response.encode('utf-8'))`发送数据,`data = client_socket.recv(1024).decode('utf-8')`接收数据。
关闭连接
完成通信后,使用`close()`方法关闭套接字。例如,`client_socket.close()`将关闭与客户端的连接。
示例代码
服务器端代码:
```python
import socket
创建TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
绑定地址和端口
server_socket.bind(('localhost', 12345))
开始监听
server_socket.listen(5)
print("服务器已启动,等待连接...")
while True:
接受客户端连接
client_socket, addr = server_socket.accept()
print(f"连接来自: {addr}")
接收数据
data = client_socket.recv(1024).decode('utf-8')
print(f"收到消息: {data}")
发送响应
response = "服务器已收到你的消息!"
client_socket.send(response.encode('utf-8'))
关闭连接
client_socket.close()
```
客户端代码:
```python
import socket
创建TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
连接到服务器
client_socket.connect(('localhost', 12345))
发送数据
message = "你好,服务器!"
client_socket.send(message.encode('utf-8'))
接收响应
response = client_socket.recv(1024).decode('utf-8')
print(f"收到响应: {response}")
关闭连接
client_socket.close()
```
通过以上步骤和示例代码,你可以使用套接字编程在Python中实现TCP服务器和客户端的连接与通信。