socket怎么编写网络程序

时间:2025-01-17 21:26:26 游戏攻略

编写一个基本的socket网络程序包括服务器端和客户端两个部分。以下是一个简单的Python示例,展示了如何实现一个基本的TCP服务器和客户端。

服务器端代码

```python

import socket

创建一个socket对象

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

绑定本地地址和端口

server.bind(('127.0.0.1', 8888))

开始监听,最大挂起连接数为5

server.listen(5)

print('服务器启动,等待客户端连接...')

while True:

接受客户端连接

client, addr = server.accept()

print(f'客户端已连接: {addr}')

接收客户端消息

data = client.recv(1024).decode('utf-8')

print(f'客户端说: {data}')

向客户端发送响应

client.send('Hello from server!'.encode('utf-8'))

关闭客户端连接

client.close()

```

客户端代码

```python

import socket

创建一个socket对象

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

连接到服务器

client.connect(('127.0.0.1', 8888))

向服务器发送消息

client.send('Hello from client!'.encode('utf-8'))

接收服务器响应

data = client.recv(1024).decode('utf-8')

print(f'服务器说: {data}')

关闭客户端连接

client.close()

```

解释

服务器端代码:

创建一个socket对象,使用`socket.AF_INET`和`socket.SOCK_STREAM`表示使用IPv4协议和TCP协议。

使用`bind`方法绑定本地地址和端口(这里使用`127.0.0.1`和8888端口)。

使用`listen`方法开始监听,最大挂起连接数为5。

使用`accept`方法接受客户端连接,返回一个新的socket对象和客户端地址。

使用`recv`方法接收客户端发送的数据,并使用`send`方法向客户端发送响应。

关闭客户端连接。

客户端代码:

创建一个socket对象,使用`socket.AF_INET`和`socket.SOCK_STREAM`表示使用IPv4协议和TCP协议。

使用`connect`方法连接到服务器(这里使用`127.0.0.1`和8888端口)。

使用`send`方法向服务器发送消息。

使用`recv`方法接收服务器发送的响应。

关闭客户端连接。

这个示例展示了如何使用Python的socket库进行基本的TCP通信。你可以根据需要扩展这个示例,例如添加多线程处理多个客户端连接、使用非阻塞I/O、实现更复杂的应用层协议等。