# 20192324夏馨 2019-2020-2 《Python程序设计》实验三报告

课程:《Python程序设计》
班级: 1923
姓名: 夏馨
学号:20192324
实验教师:王志强
实验日期:2020年5月16日
必修/选修: 公选课

1.实验内容

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

2. 实验过程及结果

此次实验的客户端及服务端代码引用了前几次课的模板,并在网上搜索加密方法选择了base64加密。
建立连接并找到可使用的IP地址后就可以开始传输文件了。

客户端代码:
import socket
import sys
import base64

try:
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('127.0.0.1',9001))
except socket.error as msg:
print(msg)
sys.exit(1)
print(s.recv(1024).decode())
filepath = 'C:\Users\gerg\Desktop\test.txt'
fp = open(filepath,'rb')
data = fp.read(1024)
encodestr = base64.b64encode(data)
print(encodestr)
s.send(encodestr)
s.close()

服务端代码:
import socket
import sys
import base64

try:
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind(('127.0.0.1',9001))
s.listen(10)
except socket.error as XIA:
print(XIA)
sys.exit(1)
print('please waitting for connect')
conn,loca = s.accept()
print('Accept new connecting from {0}'.format(loca))
conn.send('welcome!'.encode('utf-8'))
fp = open('./'+"new_file.txt",'wb')
print('start receiving...........')

data = conn.recv(1024)
decodestr = base64.b64decode(data)
print(decodestr)
fp.write(decodestr)
fp.close()
print('end receiveing........')
conn.close()
运行结果:

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

  • 问题1:加密方法不太清楚
  • 问题1解决方案:b站搜索相关教学视频学习

其他(感悟、思考等)

本次实验是用的Python进行socket编程,在实验前需要多加复习并提前察看相关资料。要搞清楚思路和每一步的细节,这样才能在编程中将socket技术运用自如。
在平时的学习生活中也要多加运用python,形成一种编程思维,多加练习,在网上自主学习。

参考资料

posted @ 2020-05-22 20:03  20192324夏馨  阅读(183)  评论(0编辑  收藏  举报