实验三-20222314陈振烨 Socket编程
20222314 陈振烨《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2223
姓名: 吴昊宇
学号:20222314
实验教师:王志强
实验日期:2023年4月20日
必修/选修: 公选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
2. 实验过程及结果
#客户端
import socket
# 创建套接字对象,AF_INET基于TCP/UDP通信,SOCK_STREAM以数据流的形式传输数据,这里就可以确定是TCP了
server = socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM)
# 绑定ip地址和端口,127.0.0.1代表回环地址,只能当前计算机访问
server.bind(('127.0.0.1',8080))
# 建立半链接池,允许存放5个请求
server.listen(5)
# 等待建立连接请求,会返回两个值,一个是连接会话,一个是连接的客户端IP与端口
conn,ip_addr = server.accept()
while True:
# 接收客户端传递的数据,不能超过1024字节
res = conn.recv(1024)
# 将客户端的数据接收到以后,转换成大写再编码后发送给客户端
conn.send(res.decode('utf-8').upper().encode('utf-8'))
# 注意:close不能放在这里面,因为在这里面的话,只能一次后就关闭了
# 关闭与客户端的连接
conn.close()
# 关闭套接字
server.close()
#客户端
import socket
# 创建套接字对象,AF_INET基于TCP/UDP通信,SOCK_STREAM以数据流的形式传输数据,这里就可以确定是TCP了
client = socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM)
# 连接服务端
client.connect(('127.0.0.1',8080))
while True:
inp = input('>>>:').strip()
# 向服务端发送数据,需要转换成Bytes类型发送
client.send(inp.encode('utf-8'))
# 接收服务端回应给客户端的数据,不能超过1024字节
res = client.recv(1024)
print(res.decode('utf-8'))
# 套接字关闭
client.close()
运行结果:
先启动服务端

再启动客户端
思考与反思:
刚开始我并没有采用127.0.0.1来作为链接端口,而是采用了我电脑的ip(之前尝试过使用同学的ip,但是需要防火墙关闭,就没让我南京的同学以为我号被盗了是骗子说啥也不信,就没继续操作下去),但是仍然出现了拒绝链接的反馈,我使用nmap扫描了自己的端口,并没有问题,防火墙我也关了,至于为什么不行我还是没搞清楚,可能是因为权限不够?需要root权限?我还是不懂,这也是我本次试验的遗憾。当然,换成127.0.0.1(默认连自己)之后就可以了,也不需要做什么开防火墙权限和自定义可接受协议之类的杂活
感悟:socket其实并不是一门只能基于python的通信方式,它可以依赖于大多数语言,以后希望有机会可以实现更多的通信项目,加强自己对于通信领域的理解(虽然我不是通信专业的哈哈哈)
相关推荐
CO-043A Released SHIPPING AND HANDLING TRAY FOR LP5 SOCAMM2 MODULE.rar
CO-043A Released SHIPPING AND HANDLING TRAY FOR LP5 SOCAMM2 MODULE.rar
阴影蜘蛛的判定与处理 vue
阴影蜘蛛的判定与处理 vue
硕士复现燃料电池供氢系统建模及控制策略Simulink仿真(附带说明PPT+参考文献+复现模型+实物源码)
内容概要:本文围绕燃料电池供氢系统的建模与控制策略展开,依托Simulink仿真平台构建了完整的系统动态模型,深入研究了供氢过程的关键动态特性及先进控制方法的设计与实现。内容涵盖系统建模流程、控制策略设计、仿真验证与结果分析,并配套提供详细的说明PPT、参考文献、可复现的仿真模型及实物源码等丰富资源,便于读者系统性地理解与复现研究成果。研究重点在于优化供氢压力、流量与响应速度,提升燃料电池系统的运行效率、稳定性与动态适应能力,对新能源领域的工程实践与学术研究具有重要参考价值。; 适合人群:具备自动化、电气工程、能源动力或控制科学等相关专业背景,正在从事新能源技术、氢能系统或仿真实验研究的硕士研究生、博士生及科研人员。; 使用场景及目标:①掌握燃料电池供氢系统的核心建模方法与Simulink高级仿真技巧;②学习并复现已有先进控制策略,进一步开展系统优化与创新设计;③为撰写高质量学术论文、完成学位课题或工程验证提供完整的理论支持与技术方案。; 阅读建议:建议结合所提供的PPT讲解、参考文献与Simulink模型逐步操作,注重理论分析与仿真实践的深度融合,在仿真过程中主动调试参数、观察动态响应,以深刻理解系统行为与控制机理,最大化学习与研究成效。
MATLAB代码:比较不同FACTS与可再生能源技术应用遗传算法的研究.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
head_model.rar
head_model.rar


