zoukankan      html  css  js  c++  java
  • 20192429 2019-2020-2 《Python程序设计》实验三报告

    20192429 2019-2020-2 《Python程序设计》实验三报告

    课程:《Python程序设计》
    班级: 1924
    姓名: 马一
    学号:20192429
    实验教师:王志强
    实验日期:2020年5月18日
    必修/选修: 公选课

    1.实验内容

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

    2. 实验过程及结果

    客户端代码

    import socket
    import os
    import base64
    os.chdir(r"C:\Users\Administrator\Desktop\programme\py\20192429")
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(('127.0.0.1',56436))
    s.listen()
    conn, address = s.accept()
    name = conn.recv(1024)
    print("来自", address, "的文件:", name.decode())
    data = conn.recv(1024)
    f = open("receive.txt", "w")
    data1 = base64.b32decode(data)
    f.write(data1.decode())
    f.close()
    print("来自", address, "加密的信息:", data.decode(), "解密后已保存为receive.txt")
    conn.sendall("服务器已经收到了数据内容,准备传输文件,注意接收!".encode())
    data1 = conn.recv(1024)
    conn.sendall("reply.txt".encode())
    f = open("receive.txt", "r")
    data1 = f.read()
    conn.sendall(data1.encode())
    f.close()
    data1 = conn.recv(1024)
    print("来自", address, "的信息", data1.decode())
    s.close()
    

    服务器实验结果

    py3-1

    客户端实验代码

    import socket
    import os
    import base64
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(('127.0.0.1',56436))
    str1 = input("请输入要传输的文件名:")
    s.sendall(str1.encode())
    os.chdir(r"C:\Users\Administrator\Desktop\programme\py\20192429")
    file = open(str1, 'r')
    text = file.read()
    text = text.encode('utf-8')
    encode_text = base64.b32encode(text)
    s.sendall(encode_text)
    file.close()
    data = s.recv(1024)
    print("来自 ('127.0.0.1') 的信息:", data.decode())
    s.sendall("收到".encode())
    name = s.recv(1024)
    print("来自 ('127.0.0.1') 的文件:", name.decode())
    data = s.recv(1024)
    f = open("reply.txt", "w")
    f.write(data.decode())
    f.close()
    print("文件内容已加密发送")
    s.sendall("已成功接收,中断连接!".encode())
    s.close()
    

    客户端实验结果

    py3-2

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

    • 问题1:计算机被积极拒绝
    • 问题1解决方案:由于使用了已建立链接的端口,换个端口试试
    • 问题2:创建了一个违规嵌套字链接
    • 问题2解决方案:由于使用了一个一关闭的端口导致

    其他(感悟、思考等)

    在使用socket技术的时候,建立链接一定要关闭代理设置,在端口链接的时候一定要检查端口是否被占用

    熟练运用文件及文件目录创建的流程,掌握os模块

    参考资料

    百度、CSDN论坛、《零基础学python》

    码云链接

    https://gitee.com/ma_yi/pyexperiment1/commit/a1cf079162410e64f57f083c21e75faa2b3ceeef

  • 相关阅读:
    HDU 3681 Prison Break 越狱(状压DP,变形)
    POJ 2411 Mondriaan's Dream (状压DP,骨牌覆盖,经典)
    ZOJ 3471 Most Powerful (状压DP,经典)
    POJ 2288 Islands and Bridges (状压DP,变形)
    HDU 3001 Travelling (状压DP,3进制)
    POJ 3311 Hie with the Pie (状压DP)
    POJ 1185 炮兵阵地 (状压DP,轮廓线DP)
    FZU 2204 7
    POJ 3254 Corn Fields (状压DP,轮廓线DP)
    ZOJ 3494 BCD Code (数位DP,AC自动机)
  • 原文地址:https://www.cnblogs.com/meeyee/p/12942740.html
Copyright © 2011-2022 走看看