socket编程——实验三报告
实验三
(一)实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
(二)实验要求
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云。
注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
(三)实验报告
在规定时间前发表博客,标题“学号 实验三《Python程序设计》实验报告”
实验报告模板如下:
# 学号 2019-2020-2 《Python程序设计》实验x报告
课程:《Python程序设计》
班级: 2121
姓名: 侯玥
学号:20212102
实验教师:王志强
实验日期:2022年5月4日
必修/选修: 公选课
1.实验内容
借助socket编程,创建服务端和客户端,监听多个客户请求,实现类似“聊天室”平台的构建
## 2. 实验过程及结果
1 import socket as ab 2 HOST="127.0.0.1" #这个是电脑自己的IP,和别人的电脑交流时要改成别人的IP 3 PORT=7921 #这个要和服务器的端口号一致 4 s = ab.socket(ab.AF_INET, ab.SOCK_STREAM) 5 print('Socket created') 6 s.bind(("127.0.0.1", 7921)) 7 s.listen()#监听 8 conn,addr=s.accept() 9 data=conn.recv(1024) 10 conn.send( ("saberp").encode() ) 11 print(ab.gethostbyaddr("127.0.0.1")[2][0]) 12 s.close()
1 from asyncore import file_dispatcher 2 import socket as ab 3 HOST="127.0.0.1" #这个是电脑自己的IP,和别人的电脑交流时要改成别人的IP 4 PORT=7921 #这个要和服务器的端口号一致 5 s = ab.socket(ab.AF_INET, ab.SOCK_STREAM) 6 s.connect(('127.0.0.1',7921)) 7 file1=open("rihoua","a",encoding="GBK") 8 file1.write("houahoua") 9 str=file1.readlines() 10 file1.close() 11 str=input() 12 s.sendall(str.encode()) 13 data=s.recv(1024) 14 print(data.decode()) 15 s.close()
3. 实验过程中遇到的问题和解决过程
- 问题1:无法同时运行两个程序
- 问题1解决方案:放到一个文件夹下,先运行服务端,再运行客户端。
- 问题2:
- 问题2解决方案:更换端口
其他(感悟、思考等)
学习socket编程像是在啃硬骨头,这是我第一次接触网络编程,学习起来比较吃力,对于许多网络编程概念不清楚,多查阅资料,多学习,然后找到网络编程的感觉。
参考资料