实验三socket使用
实验三
(一)实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
(二)实验要求
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。
(三)实验报告
在规定时间前发表博客,标题“学号 实验三《Python程序设计》实验报告”
实验报告模板如下:
学号 2019-2020-2 《Python程序设计》实验x报告
课程:《Python程序设计》
班级: 2013
姓名: 蒋进
学号:20201326
实验教师:王志强
实验日期:2021年5月27日
必修/选修: 公选课
1.实验内容
此处填写实验的具体内容;
使用socket模块感受网络数据传输
服务端:
导入 socket、sys 模块
import socket
import base64
创建 socket 对象
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
获取本地主机名
host = socket.gethostname()
port = 9999
绑定端口号
serversocket.bind((host, port))
设置最大连接数,超过后排队
serversocket.listen(5)
用base64对传输文字进行加密
sendtext = "我使用socket完成作业"
file = open('sendW.txt','a+')
file.write(sendtext)
sendtex = sendtext.encode('utf-8')
enctext= base64.b32encode(sendtex)
while True:
# 建立客户端连接
clientsocket, addr = serversocket.accept()
print("连接地址: %s" % str(addr))
clientsocket.send(sendtex)
clientsocket.close()
用户端:
import socket
创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
获取本地主机名
host = socket.gethostname()
设置端口号
port = 9999
连接服务,指定主机和端口
s.connect((host, port))
接收小于 1024 字节的数据
sw = s.recv(1024)
s.close()
print (sw.decode('utf-8'))
2. 实验过程及结果
此处填写实验的过程及结果
3. 实验过程中遇到的问题和解决过程
- 问题1:无法使用socket库
- 问题1解决方案:将文件名由socket改为socket1
- 问题2:base64无法加密文字。
- 问题2解决方案:将文字写入文件
- 问题3:base64.b64encode无法使用
- 问题3解决方案:将b64改为b32
- ...
其他(感悟、思考等)
认真分析python运行过程中的报错,只有看懂了报错才会真正进步。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~