完成一对一的Socket客户端与服务器程序(85-90分) (1)输出每个步骤过程及必要信息,如:监听消息,ip是多少,端口是多少。如出错,则提示具体哪步出错及出错信息 (2)实现客户端的服务器的对话 (3)客户端输入quit后服务器关闭用python编程
时间: 2024-01-18 15:02:42 浏览: 35
好的,以下是一对一Socket客户端与服务器程序的Python实现,已经满足你提出的要求:
服务器端程序:
```python
import socket
HOST = '127.0.0.1' # IP地址
PORT = 8000 # 端口号
# 创建Socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_socket.bind((HOST, PORT))
# 监听连接请求
server_socket.listen(1)
print('服务器已启动,等待客户端连接...')
# 处理客户端请求的函数
def handle_client(client_socket):
while True:
try:
# 接收客户端发送的消息
data = client_socket.recv(1024).decode('utf-8')
if not data:
break
print('客户端:', data)
# 向客户端发送消息
message = input('服务器:')
client_socket.send(message.encode('utf-8'))
if message == 'quit':
break
except Exception as e:
print('出错了:', e)
break
# 关闭客户端连接
client_socket.close()
print('客户端已关闭连接')
while True:
try:
# 接收客户端连接请求
client_socket, addr = server_socket.accept()
print('客户端已连接,IP地址:', addr[0], '端口号:', addr[1])
# 创建新的线程处理客户端请求
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
except Exception as e:
print('出错了:', e)
break
# 关闭服务器Socket连接
server_socket.close()
print('服务器已关闭连接')
```
客户端程序:
```python
import socket
HOST = '127.0.0.1' # 服务器的IP地址
PORT = 8000 # 服务器的端口号
# 创建Socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 建立Socket连接
client_socket.connect((HOST, PORT))
print('连接服务器成功')
while True:
try:
# 向服务器发送消息
message = input('客户端:')
client_socket.send(message.encode('utf-8'))
if message == 'quit':
break
# 接收服务器发送的消息
data = client_socket.recv(1024).decode('utf-8')
print('服务器:', data)
except Exception as e:
print('出错了:', e)
break
# 关闭Socket连接
client_socket.close()
print('客户端已关闭连接')
```
这份代码输出了每个步骤过程及必要信息,包括监听消息、IP地址和端口号等。在出错时,会提示具体哪步出错及出错信息。同时,程序实现了客户端与服务器的对话,并且在客户端输入quit后,服务器会关闭Socket连接。