python编写可以进行简单通讯的服务器和客户端的Socket程序
时间: 2024-06-10 19:04:20 浏览: 59
好的,关于您的问题,我可以为您提供以下Python代码示例:
服务端(server):
```python
import socket
HOST = '' # 表示可以在任意网络接口上进行监听
PORT = 8888 # 监听的端口号
BUFFER_SIZE = 1024 # 缓冲区大小,单位是字节,这里设置为1024字节
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
server_socket.bind((HOST, PORT))
# 开始监听客户端连接
server_socket.listen(1)
# 等待客户端连接
print('等待客户端连接...')
client_socket, client_address = server_socket.accept()
print('客户端已连接:', client_address)
while True:
# 从客户端接收消息
data = client_socket.recv(BUFFER_SIZE)
if not data:
# 客户端已经断开连接
client_socket.close()
print('客户端已断开连接')
break
# 把接收到的数据转成字符串并打印出来
print(f'接收到的消息:{data.decode()}')
# 从控制台读取一行输入
message = input('请输入要发送的消息:')
# 把输入的消息发送给客户端
client_socket.send(message.encode())
# 关闭socket对象
server_socket.close()
```
客户端(client):
```python
import socket
HOST = '' # 连接到本机
PORT = 8888 # 连接的端口号
BUFFER_SIZE = 1024 # 缓冲区大小,单位是字节,这里设置为1024字节
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务端
client_socket.connect((HOST, PORT))
print('已连接到服务器')
while True:
# 从控制台读取一行输入
message = input('请输入要发送的消息:')
# 把输入的消息发送给服务端
client_socket.send(message.encode())
# 从服务端接收消息
data = client_socket.recv(BUFFER_SIZE)
if not data:
# 服务端已经断开连接
client_socket.close()
print('已断开与服务器的连接')
break
# 把接收到的数据转成字符串并打印出来
print(f'接收到的消息:{data.decode()}')
# 关闭socket对象
client_socket.close()
```
需要注意的是,这是一个简单的示例程序,仅用于学习演示,实际使用时可能需要增加容错处理等。另外,还要注意网络安全问题,例如防火墙、数据加密等。
阅读全文