- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
python底层⽹络接⼝TCP编程实验报告
⽹络编程实验报告
实验题⽬:底层⽹络接⼝编程实验
⼀、TCP编程
1、需求分析
tcp是⾯向连接的可靠的协议,适⽤于传输⼤批量的⽂件,检查是否正常传输。tcp需要先建⽴连接才能通话。
tcp可以形象⽐喻为打电话的过程,udp可以⽐喻为发短信的过程
tcp不能发送⼴播和组播,只能单播
2、概要设计
3、详细设计
(1)、伪代码:
TCP服务器端:
ss=socket() #创建服务器套接字
ss.bind() #把本地地址绑到套接字上
ss.listen() #监听连接
inf_loop: #服务器⽆限循环
cs=ss.accept() #接受客户端的连接
comm._loop: #通信循环
cs.recv()/cs.send() #对话
cs.close() #关闭客户套接字
ss.close() #关闭服务器套接字
TCP客户端:
cs=socket() #创建客户套接字
cs.connect() #尝试连接服务器
comm._loop: #通信循环
cs.send()/cs.recv() #对话
cs.close() #关闭套接字
(2)、TCP服务器脚本如下:
from socket import * 导⼊socket所有内建⽅法from time import ctime 导⼊时间类
#主机
HOST = #代表服务器为localhost #端⼝号
PORT = 12345
#缓存⼤⼩
BUFSIZE = 1024
#完整地址
ADDR = (HOST, PORT)
#参数SOCK_STREAM表⽰建⽴⼀个TCP服务器tcpSerSock = socket(AF_INET, SOCK_STREAM)
#绑定到指定端⼝
tcpSerSock.bind(ADDR)
#最多连接5个客户端
tcpSerSock.listen(5)
while True:
print Waiting for connection...
tcpCliSock, addr = tcpSerSock.accept()
print ...connected from: , addr
while True:
#接收客户端数据
data = tcpCliSock.recv(BUFSIZE)
if not data:
break
print Received from client:, data
# 向客户端发送数据
tcpCliSock.send([%s] %s % (ctime(), data))
#关闭连接
tcpCliSock.close()
tcpSerSock.close()
注:⼀种友好的退出⽅法是把服务器的⽆限循环放在⼀个try-except语句的try⼦句当中,并捕获EOFError和KeyboardInterrupt
异常,在异常处理⼦句中,调⽤close()函数关闭服务器的套接字。
(3)、TCP客户端脚本如下:
from socket import *
#设置连接参数
#主机(本机)
HOST = localhost
#端⼝号
PORT = 12345
#缓存⼤⼩
BUFSIZE = 1024
#完整地址
ADDR = (HOST, PORT)
#SOCK_STREAM参数表⽰建⽴TCP连接
tcpCliSock = socket(AF_INET, SOCK_STREAM)
#使⽤socket的connect⽅法连接服务器
tcpCliSock.connect(ADDR)
while True:
data = raw_input()
if not data:
break
# 向服务器发送数据
tcpCliSock.send(data)
#接收服务器返回的数据
data = tcpCliSock.recv(BUFSIZE)
if not data:
break
print data
#关闭连接
tcpCliSock.close()
4、程序设计及运⾏结果
(1)、服务器程序:
(2)、客户端程序:
(3)、程序结果在两个shell中演⽰:
⼆、UDP编程
1、需求分析
udp是⾯向⾮连接的不可靠的协议,适⽤于传输⼀次性⼩批量的⽂件,不对传输数据报进⾏检查
udp不需要,实时性要⾼点
udp可以⼴播和组播
2、概要设计
3、详细设计
(1)、伪代码:
UDP服务器端:
Ss=socket() #创建套接字
ss.bind() #绑定
inf_loop: #⽆限循环
ss.recv
您可能关注的文档
最近下载
- 体检中心运用PDCA降低体检中心体检者漏检率品管圈成果汇报书.docx VIP
- 《就业与创业指导》第1课-绪论 教案.doc VIP
- 标准图集-19J305 重载及特殊重载、轨道楼地面.pdf VIP
- 高教社2024商务礼仪第四版教学课件-2024-04商务拜访接待礼仪.pptx VIP
- 2023年6月新高考全国一卷读后续写真题 详讲(写作比赛)课件 高考英语作文复习专项.pptx VIP
- 内分泌科动态试验操作规范.pptx VIP
- 涂料印花助剂及其应用.pptx VIP
- 高教社2024商务礼仪第四版教学课件-2024-03商务交往礼仪.pptx VIP
- 川教版生命生态安全一年级上册第18课 我是小主人 教学设计.pdf VIP
- DB32T 2857-2015 玉米产量现场测定操作规程 .docx VIP
文档评论(0)