python使用socket实现的传输demo示例【基于TCP协议】


Posted in Python onSeptember 24, 2019

本文实例讲述了python使用socket实现的传输demo。分享给大家供大家参考,具体如下:

socket传输,客户端代码

import socket
def main():
  tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  # 服务器位于本机 9999
  tcp_client_socket.connect( ("192.168.27.72", 9999) )
  # 告诉服务器,我要下载哪一个文件
  file_name = input("请输入要下载的文件名:")
  tcp_client_socket.send(file_name.encode("utf-8"))
  temp = tcp_client_socket.recv(1024)
  print(temp)
  file_length = int(temp.decode("utf-8"))
  # 接收数据 字节
  recv_data = tcp_client_socket.recv(file_length)
  # 得到数据,需要将数据写入文件
  if recv_data:
    # f = open("new_" + file_name, "wb")
    # try:
    #   f.write(recv_data)
    # except Exception as result:
    #   print("写入文件错误")
    # finally:
    #   f.close()
    with open("new_" + file_name, "wb") as f:
      f.write(recv_data)
  tcp_client_socket.close()
if __name__ == '__main__':
  main()

服务端代码:

import socket
def main():
  #1创建套接字
  tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  #2绑定本地信息bind
  tcp_server_socket.bind(('',9999))
  #3让默认的套接字由主动变为被动listen ????
  tcp_server_socket.listen(128)
  #4等待别人的电话到来(等待客户端的链接 accept)
  new_client_socket, client_addr = tcp_server_socket.accept()
  #5调用发送文件函数,完成为客户端服务
  rece_data = new_client_socket.recv(1024)
  file_name = rece_data.decode('utf-8')
  try:
    f = open(file_name, 'rb')
    content = f.read()
    file_length = len(content)
    print(file_length)
    new_client_socket.send(str(file_length).encode('utf-8'))   #????1两个发送第二个执行快了怎么办?
    new_client_socket.send(content)
  except Exception as f:
    print('文件打开失败')
  # 6关闭套接字
  new_client_socket.close()
  tcp_server_socket.close()
if __name__ == '__main__':
  main()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现sublime3的less编译插件示例
Apr 27 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
Python 支付整合开发包的实现
Jan 23 Python
Python实战购物车项目的实现参考
Feb 20 Python
python处理“
Jun 10 Python
Python 的AES加密与解密实现
Jul 09 Python
python+selenium+Chrome options参数的使用
Mar 18 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
Jun 23 Python
Django返回HTML文件的实现方法
Sep 17 Python
Python爬虫爬取有道实现翻译功能
Nov 27 Python
Python使用Pygame绘制时钟
Nov 29 Python
pymysql 开启调试模式的实现
Sep 24 #Python
django2.2安装错误最全的解决方案(小结)
Sep 24 #Python
python爬虫中多线程的使用详解
Sep 23 #Python
Django中自定义模型管理器(Manager)及方法
Sep 23 #Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 #Python
Python 单例设计模式用法实例分析
Sep 23 #Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 #Python
You might like
dedecms系统常用术语汇总
2007/04/03 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
vue filters的使用详解
2018/06/11 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
介绍Python中的__future__模块
2015/04/27 Python
Python sys.argv用法实例
2015/05/28 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
幼儿园实习生辞职信
2014/01/20 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫