20202127 2021-2022-2 《Python程序设计》实验三报告

课程:《Python程序设计》
班级: 2021
姓名: 马艺洲
学号:20202127
实验教师:王志强
实验日期:2022年4月28日
必修/选修: 公选课

1.实验内容

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

2. 实验要求

  • 创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
  • 要求包含文件的基本操作,例如打开和读写操作。
  • 要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
  • 程序代码托管到码云。

3. 实验过程及结果

(1)client部分

  • 1.将client和sever连接
  • 2.将传输的文字写入文件并读取
    image
  • 3.加密并传输
    image

(2)server部分

Sever:

import socket
import os
import base64

def main():
    # 1.创建一个tcp套接字socket
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 2.绑定本地地址,端口号bind
    tcp_socket.bind(("127.0.0.1", 7000))

    # 3.监听个数 listen(128)
    tcp_socket.listen(128)
    print('****************服务器连接********************')
    conn, addr = tcp_socket.accept()
    conn.send('Hi!'.encode('utf-8'))
    file = open('./' + "new_file.txt", 'wb')
    data = conn.recv(1024)
    jiema = base64.b64decode(data)
    print(jiema)
    file.write(jiema)
    file.close()
    print('接收任务完成!')    
    while True:

        print("***************服务器开始*****************")
        print("")
        # 4.接受客户进来,accept 返回元祖,一个变量提供当前进来客户到的服务
        # 第二个变量继续等待下一个客户
        new_server, add = tcp_socket.accept()
        while True:
            # 5.接受客户信息
            mess = new_server.recv(1024)

            if mess:
                print(mess.decode("utf-8"))
                # 5.给客户返回信息
                send_message = input("请输入你要回复的信息:")
                new_server.send(send_message.encode("utf-8"))

            else:
                break

        # 6.关闭当前服务的客户
        new_server.close()

    # 7.关闭套接字
    tcp_socket.close()


if __name__ == "__main__":
    main()

(3)程序代码托管到码云。

https://gitee.com/besti-cs/garfield.git

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

  • 问题1:目标无法连接
  • 问题1解决方案:整个实验第一件事先关闭防火墙!
  • 问题2:目标计算机积极拒绝,依旧无法连接
    image
  • 问题2解决方案:先运行服务器,再运行客户端

其他(感悟、思考等)

在实现文件的传输过程中,共有两份客户端和服务器的代码无法运行,而且凭借自身的知识储备无法检查出其内在错误,只好作罢,但是今天突然有了一个念想,希望自己在省下的一个月里,在完成实验四的同时,将这次实验没有完成的遗憾填满,感激挫折,感谢阻挠,才拥有思考!

参考资料

posted @ 2022-05-03 21:42  加菲猫m  阅读(30)  评论(0编辑  收藏  举报