20244123 实验三《Python程序设计》实验报告

20244123 2024-2025-3 《Python程序设计》实验三报告

课程:《Python程序设计》
班级: 2441
姓名: 邓淑怀
学号:20244123
实验教师:王志强
实验日期:2025年4月15日
必修/选修: 公选课

1.实验内容

创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。

2. 实验过程及结果

课程中根据老师讲解,了解python中socket代码编写基本原理,和同伴简单实验并操作,步骤如下。
服务器端口:
(1)使用“import socket”导入socket函数,完成初始化,确保程序正常运行;
(2)使用“client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)”创建 socket 对象,其中socket.AF_INET 表示使用 IPv4 地址;
(3)使用“server_socket.bind(('服务器电脑IPv4地址', 协议端口))”绑定IPv4地址及协议端口;
(4)使用“server_socket.listen(num.)”规定监听客户端数量;
(5)最后使用循环设置与客户端的通讯对话,其中用“encode”完成解码,为了实验方便,通常采用“utf-8”码;此外,使用“ data = client_socket.recv(1024).decode("utf-8")”规定每次接收数据的最大字节数,大于规定字节数则程序终止;使用“message = input("请输入要发送给客户端的消息:")”和“client_socket.send(message.encode("utf-8"))”向客户端发送信息;使用“client_socket.close()和serve_socket.close()”关闭连接。
程序和运行如下(本机为服务器,同伴为客户端):


客户端:
(1)使用“import socket”导入socket函数,完成初始化;
(2)使用“client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)”创建 socket 对象;
(3)使用“server_address = ('服务器电脑IPv4地址', 协议端口)”和“client_socket.connect(server_address)”连接服务器;
(4)最后使用循环设置与服务器的通讯对话,其中解码、最大字节数设置同服务器;使用“client_socket.close()”关闭连接。
程序和运行如下(本机为客户端,同伴为服务器):

课后,再次实验,使用本机和本机对话,以便更好掌握操作。效果如下:

3. 实验过程中遇到的问题和解决过程

  • 问题1:端口被占用。
  • 问题1解决方案:在上一个端口未被释放时尝试更换其他端口,解决问题。
  • 问题2:目标计算机积极拒绝。
  • 问题2解决方案:暂时关闭目标计算机防火墙,解决问题。

其他(感悟、思考等)

本次实验基于课程中对socket函数的理解和同伴的配合,启示我们了解技术、重视合作。socket函数使用为我们更深入打开学习Python的大门,让我们见识Python的实用和强大。

参考资料

  • 《Python程序设计》
posted @ 2025-04-19 22:07  20244123邓淑怀  阅读(36)  评论(0)    收藏  举报