建网站那种服务器好,汽车o2o网站建设,织梦汽车网站模板,品牌网站建设小蝌蚪1a实验目的与要求
本实验是程序设计类实验#xff0c;要求使用原始套接字编程#xff0c;掌握TCP/IP协议与网络编程Sockets通信模型#xff0c;并根据教师给定的任务要求#xff0c;使用TCP协议实现智能聊天机器人。
#xff08;1#xff09;熟悉标准库socket 的用法。
…实验目的与要求
本实验是程序设计类实验要求使用原始套接字编程掌握TCP/IP协议与网络编程Sockets通信模型并根据教师给定的任务要求使用TCP协议实现智能聊天机器人。
1熟悉标准库socket 的用法。
2熟悉TCP 协议工作原理。
3理解端口号的概念与作用。
4熟悉Socket 编程。
实验原理与内容
1. 利用所安装部署好的开发环境设计编程。
2. 实现TCP协议实现智能聊天机器人。
利用TCP/IP协议与网络编程Sockets通信模型根据任务要求实现多进程/多线程并发机制,开发设计一个基于TCP协议实现智能聊天机器人。
编写聊天程序的服务端代码和客户端代码。完成后先启动服务端代码然后启动客户端程序用输入问题服务端可以返回相应的答案。要求服务端代码具有一定的智能能够根据不完整的问题识别客户端真正要问的问题。
实验设备与软件环境
1.Windows 2003/ win7/win8/win10 操作系统。
2.Visual Studio/Pycharm及以上
实验过程与结果
服务端
import socket# 定义主机和端口
HOST 10.225.107.68 # 本地主机
PORT 8888# 为聊天机器人定义回复
responses {你好: 你好我能为你做些什么呢,你好吗: 我只是一个程序但还好谢谢你的关心,再见: 再见祝你有个美好的一天,default: 抱歉我不太明白你的意思。
}# 创建TCP/IP套接字
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(f来自{client_address}的连接已建立。)# 处理客户端消息的函数
def handle_client_message(message):message message.lower()response responses.get(message, responses[default])return responsetry:while True:# 从客户端接收消息data client_socket.recv(1024).decode(utf-8)if not data:breakprint(f客户端{data})# 处理客户端消息response handle_client_message(data)# 将响应发送给客户端client_socket.sendall(response.encode(utf-8))print(f服务器{response})
finally:# 清理连接client_socket.close()server_socket.close()客户端
import socket# 定义服务端主机和端口
SERVER_HOST 10.225.107.68
SERVER_PORT 8888# 创建TCP/IP套接字
client_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 连接到服务端
client_socket.connect((SERVER_HOST, SERVER_PORT))try:while True:# 从用户输入中获取消息并发送给服务器
message input(你)client_socket.sendall(message.encode(utf-8))# 接收来自服务器的响应response client_socket.recv(1024).decode(utf-8)print(f服务器{response})
finally:# 清理连接client_socket.close()