20232319 2023-2024-2 《Python程序设计》实验三报告

20232319黄津 2024-04-21 19:57:06

学号 20232319 《Python程序设计》实验3报告

课程:《Python程序设计》
班级: 2323
姓名: 黄津
学号:20232319
实验教师:王志强
实验日期:2024年4月17日
必修/选修: 公选课

1.实验内容

客户端源码,端口2028

import socket
from DesModule import *  
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(("192.168.1.111",2028))  #connect接收的是一个元组,故有两个括号
while True:
    data = input('>>>').strip()
    encrypted_data = des_encrypt(data.encode('utf-8'), "12345678") #返回字符串
    client.send(encrypted_data.encode('utf-8')) ##此处要将字符串重新编码

    ret = client.recv(1024)
    decrypted_ret = des_descrypt(ret.decode('utf-8'), "12345678")
    print(decrypted_ret)

client.close

服务端源码,端口2028

import socket
from DesModule import *
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("192.168.1.104", 2028))
server.listen(5) #监听
while True:
    conn, addr = server.accept()  #此处创造了新的套接字coon,addr为客户端地址
    print(conn)
    while True:
        try:
            data = conn.recv(1024)
            de = des_descrypt(data.decode('utf-8'),"12345678")
            print(de)
            ret_data = input("请回复:")
            sendout = des_encrypt(ret_data,"12345678")
            conn.send(sendout.encode('utf-8'))
        except Exception:
            break
    conn.close()

2. 实验过程及结果

作为服务端

img

作为客户端

img

上传到gitee,详见https://gitee.com/huangjin42953/test_python/tree/master

img

关于文件的操作及连接过程
作为客户端

img

作为服务端

img

文件操作结果如下

img

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

问题1:DesModule模块的使用
问题1解决方案:分析代码,询问ChatGPT。
得知该模块代码的返回值为字符串而非字节流,不能直接将返回值直接放到cilent.send()中,需要使用utf-8编码再使用。服务端同理。

其他(感悟、思考等)

第一次接触通过编程来实现网络通信,感觉十分神奇。

参考资料
《零基础学Python》

...全文
57 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110

社区成员

发帖
与我相关
我的任务
社区描述
人生苦短,我用Python!
python3.11 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧