当前位置: 首页 > news >正文

爱是做的电影网站临沂百度推广的电话

爱是做的电影网站,临沂百度推广的电话,解封后中国死了多少人,如何给网站添加网站地图说明#xff1a;该篇博客是博主一字一码编写的#xff0c;实属不易#xff0c;请尊重原创#xff0c;谢谢大家#xff01; 目录 一丶项目介绍 二丶服务器Server 三丶测试TCP server服务器 四丶客户端Client 五丶测试客户端向服务器下载文件 一丶项目介绍 1.叙述 生活中大家… 说明该篇博客是博主一字一码编写的实属不易请尊重原创谢谢大家 目录 一丶项目介绍 二丶服务器Server 三丶测试TCP server服务器 四丶客户端Client 五丶测试客户端向服务器下载文件 一丶项目介绍 1.叙述 生活中大家都使用过迅雷吧用户在客户端上使用迅雷从服务器上download一个文件到客户端今天博主就是使用TCP网络搭建一个客户端client连接服务器server从服务器server上下载所想要下载的文件到客户端client上 2.项目环境 操作系统Windows7  IDEPyCharm2017 编程语言python3.x 测试工具网络调试工具3.x 二丶服务器Server 1.在PyCharm中创建file_download_tcpServer.py和file_download_tcpClient.py文件用于实现tcp服务器客户端 2.首先在file_download_tcpServer.py中进行代码逻辑编写 step1 创建tcp socket套接字tcp_server_socket socket(AF_INET, SOCK_STREAM) step2 绑定本地IP和端口tcp_server_socket.bind((, 8888)) step3 使用listen将主动套接字变为被动套接字tcp_server_socket.listen(128) step4 等待客户端的链接即为这个客户端发送文件因为不止一个客户连接此时需要将step4~7代码写在while True里面client_socket, clientAddr tcp_server_socket.accept() step5 显示连接的客户端用户信息print(用户%s 已连接% str(clientAddr)) step6 接收客户端发送过来的数据获取客户要下载的文件并打印显示recv_data client_socket.recv(1024) # 接收1024个字节 file_name recv_data.decode(utf-8) print(对方请求下载的文件名为:%s % file_name) step7 根据客户请求下载的文件名获取该文件内容并发送给客户端try:with open(filename, rb) as f:file_content f.read() except Exception as e:print(获取文件内容出错:, e)if file_content:client_socket.send(file_content) # 关闭该套接字 client_socket.close() step8 关闭服务器监听套接字tcp_server_socket.close() 3.封装解耦代码博主之所以这样做是为了让大家了解一个正确开发过程提高代码复用性 从上面代码可以看出耦合性比较严重看着杂乱无章比较费劲所以需要对代码进行解耦操作降低代码耦合性获取客户端下载文件内容可以封装到一个方法里get_file_content而tcp 服务器创建套接字以及关闭都可以封装到main方法里面如下所示 def get_file_content(filename):获取文件内容try:with open(filename, rb) as f:content f.read()return contentexcept Exception as e:print(获取文件内容出错:, e)def main():# 创建sockettcp_server_socket socket(AF_INET, SOCK_STREAM)# 绑定本地信息tcp_server_socket.bind((, 8888))# 使用listen将主动套接字变为被动套接字tcp_server_socket.listen(128)while True:# 等待客户端的链接即为这个客户端发送文件client_socket, clientAddr tcp_server_socket.accept()print(用户%s 已连接% str(clientAddr))# 接收客户端发送过来的数据获取客户要下载的文件名recv_data client_socket.recv(1024) # 接收1024个字节file_name recv_data.decode(utf-8)print(对方请求下载的文件名为:%s % file_name)file_content get_file_content(file_name)# 发送文件的数据给客户端获取文件内容使用rb二进制所以这里不需要进行encode编码操作if file_content:client_socket.send(file_content)# 关闭客户端套接字client_socket.close()# 关闭服务器监听套接字tcp_server_socket.close()if __name__ __main__:main() 4. 指定服务器运行方式为python3 xxx.py 8888将服务器绑定端口号传入到代码中 step1 指定TCP服务器启动为终端命令python3 xxx.py 8888方式这个比较新颖这里博主给大家详细进行演示这里博主在项目目录下创建demo.py文件用于演示在demo.py中进行如下编写import sys print(len(sys.argv))step2 在pycharm中直接运行run demo.py结果如下 step3 在pycharm Terminal终端执行python3 demo.py 8888 打印出sys.argv的长度为2结果为列表所以打印的第一个元素值为文件名第二元素的值为传入的端口号所以说如果sys.argv的长度为1代表直接运行为2时表示是以python3 xxx.py 8888方式运行由此可以进行逻辑判断  step4 在main主函数第一行加入以下代码并将bing方法中的端口参数修改为portdef main():import sysif len(sys.argv) ! 2:print(请按照如下方式运行python3 xxx.py 8888)returnelse:# 运行方式为python3 xxx.py 8888port int(sys.argv[1]) # 8888  三丶测试TCP server服务器 1.在Terminal终端执行python3 file_download_tcpServer.py 没有传入端口号出现定义的提示 2.在Terminal终端执行python3 file_download_tcpServer.py 8888即成功运行tcp 服务器并绑定8888端口终端光标开始闪烁等待客户端的连接 3.打开网络调试助手选择TCP client客户端IP地址为本机IP 端口为服务器绑定端口号8888, 4.点击连接成功后回到pycharm Terminal终端此时终端显示用户XXXX已连接 5.在网络调试助手中发送demo.py文件名client发送下载文件名必须存在于服务器端此时服务器获取客户端发送的下载文件名获取该文件的内容发送给客户端代表服务器代码逻辑编写正确 step1 服务端显示如下 step2 客户端显示如下   四丶客户端Client 1.在file_download_tcpClient.py中进行代码逻辑编写相对服务器来说客户端的代码实现就比较简单首先定义main主函数用于客户端创建套接字连接目标服务器 step1 创建套接字tcp_client_socket socket(AF_INET, SOCK_STREAM) step2 连接目标服务器tcp_client_socket.connect((input(请输入服务器ip:), int(input(请输入服务器port:)))) step3 输入要下载的文件名并向服务器发送file_name input(请输入要下载的文件名) tcp_client_socket.send(file_name.encode(utf-8)) step4 接收服务器发送过来的数据接收1024个字节1Krecv_data tcp_client_socket.recv(1024) step5 接收数据不为空时写入到本地客户端if recv_data:with open([接收]file_name, wb) as f:f.write(recv_data) step6 关闭客户端套接字tcp_client_socket.close() 2.客户端完整代码 from socket import *def main():# 创建socket套接字tcp_client_socket socket(AF_INET, SOCK_STREAM)# 连接目标服务器tcp_client_socket.connect((input(请输入服务器ip:), int(input(请输入服务器port:))))# 输入需要下载的文件名file_name input(请输入要下载的文件名)# 向服务器发送文件下载请求tcp_client_socket.send(file_name.encode(utf-8))# 接收服务器发送过来的数据recv_data tcp_client_socket.recv(1024)print(接收到的数据为:, recv_data.decode(utf-8))# 接收数据不为空时写入到本地客户端if recv_data:with open([接收]file_name, wb) as f:f.write(recv_data)# 关闭套接字tcp_client_socket.close()if __name__ __main__:main() 五丶测试客户端向服务器下载文件 1.首先在Terminal终端上执行python3 file_download_tcpServer.py 8888将服务器运行在8888端口上此时服务器正等待客户端连接 2.在pycharm上直接run运行 file_download_tcpClient.py客户端 step1 运行后则显示输入服务器的IP端口以及要下载的文件名发送请求给服务器成功则服务器会将该文件的内容发送给客户端此时打印出demo.py文件中的内容并在本地客户端成功创建一个[接收]demo.py文件 step2 查看是否存在 [接收]demo.py文件 step3 查看该文件内容与demo.py内容一致表示从服务器下载文件成功 step4 查看Terminal服务器显示显示出客户端请求下载的文件名正确 3.在服务器目录下存放一张1.jpg头像图片进行测试 step1 查看1.jpg文件 step2 因为该图片大小为42.04K所在在客户端中recv方法的参数值必须大于文件大小值所以这里我修改为10000010241k不然的话下载的图片会出现模糊以及残缺recv_data tcp_client_socket.recv(100000) step3 运行file_download_tcpClient.py程序向服务器发送下载1.jpg文件请求, step4  查看下载后的[接收]1.jpg文件并与1.jpg文件进行对比属性均一致表示搭建的tcp文件下载器成功     转载于:https://www.cnblogs.com/cdtaogang/p/10631071.html
http://www.zqtcl.cn/news/261407/

相关文章:

  • 开发网站的费用属于什么费用高等院校网站建设方案
  • 建设化工网站的功能百度装修网站
  • 重庆大渡口营销型网站建设价格网站404 原因
  • 网网站建设公司咨询php asp jsp 网站
  • 遂宁北京网站建设微盟微商城官网
  • 惠州网站建设创业三明百度seo
  • 网站制作模板公司网站维护流程
  • 超炫网站模板友情链接交换教程
  • 物流公司做网站有用吗备案网站的黑名单
  • 多语言网站制作长沙市做网站的
  • 做视频点播网站要多少带宽怎么用电脑做网站服务器吗
  • 新办公司网上核名在哪个网站做网站内容作弊的形式
  • 网站风格化设计方案常见的erp软件有哪些
  • 河北石家庄特产做网站优化的
  • 做网站工资年新多少在广东番禺网页设计公司
  • 宝安专业手机网站设计公司王野天个人资料
  • 给网站做蜘蛛抓取赚钱
  • 康保网站制作高端网站制作服务
  • 网站建设的网站分析怎么写crm管理系统销售
  • 茂名做网站的公司大专学电子商务有用吗
  • qq空间做宣传网站如何做图片网站
  • 邯郸住房城乡建设厅网站建设银行网站钓鱼网站
  • 高密建网站龙门城乡规划建设局网站
  • 阿里云从哪里建设网站企业设计网站公司排名
  • 长春做网站推广的公司公司要做个网站吗
  • 天水 网站建设招聘个人网站建设的国外文献综述
  • 什么网站做推广最好建行网站用户名是什么
  • 网站建设和维护需要学的东西服务器学生
  • 电子工厂网站建设企业管理咨询报告
  • 敖汉旗网站建设网站建设班级通讯录