tcp怎么使用套接字编程来连接

时间:2025-01-28 02:19:15 网络游戏

使用套接字编程连接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服务器和客户端的连接与通信。