20212112刘锦淑实验三报告

# 学号 20212112《Python程序设计》实验三报告

课程:《Python程序设计》
班级: 2121
姓名:刘锦淑
学号:20212112
实验教师:王志强
实验日期:2022年5月4日
必修/选修: 公选课

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

(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;

(2)要求包含文件的基本操作,例如打开和读写操作。

(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。

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


## 2. 实验过程及结果
客户端代码

 


服务器端代码

 

加密后客户端代码 

# client.py

import socket

 

# HOST = 'localhost'

HOST = '192.168.10.191'

PORT = 5050

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:

     s.connect((HOST, PORT))

     while True:  #while里面只能有send和recieve

         msg=input("请输入你想传达的信息,传入exit则退出\n")

         if msg=="exit":

               break

# client先发送消息再接收

s.sendall(msg.encode())

data = s.recv(1024)

print(f"他说 {data.decode()}")

加密后服务端代码

import socket

 

HOST = ''  #主机

PORT = 5050  #端口

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:

     s.bind((HOST, PORT))

     #bind(address), 传输层为AF_INET时address是(主机host,端口port)格式

     s.listen(2)

   conn, addr = s.accept()

     #conn新的套接字对象,用于接收发送数据,

     # addr客户端地址为元组(hostname, port)

 

     with conn:  #while里面只能有recieve和send

          print('Connected by', addr)

          while True:  #server先接收再发送

              data = conn.recv(1024)

              print(f"{addr}说:{data.decode()}")

              server_msg=input("请输入你想回复的内容,输入exit则退出:\n")

              conn.sendall(server_msg.encode())

              if server_msg=="exit":

                 break

码云链接https://gitee.com/besti-cs/hanyus-favorite-poof-poop.git
## 3. 实验过程中遇到的问题和解决过程
- 问题1:运行失败
- 问题1解决方案:尚未解决
- 问题2:加密不会
- 问题2解决方案:询问同学,查找资料



## 其他(感悟、思考等)

依旧有很多不会内容,还需继续努力。

posted @ 2022-05-04 22:41  youzihanui最爱的噗噗  阅读(31)  评论(0编辑  收藏  举报