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 Tkinter GUI编程入门介绍
Mar 10 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
Python 爬虫爬取指定博客的所有文章
Feb 17 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
Python安装selenium包详细过程
Jul 23 Python
Python 分发包中添加额外文件的方法
Aug 16 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
python中判断文件结束符的具体方法
Aug 04 Python
基于python实现银行管理系统
Apr 20 Python
python基础之文件操作
Oct 24 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
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
php写app用的框架整理
2019/09/29 PHP
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
javascript折半查找详解
2015/01/26 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
python使用cookielib库示例分享
2014/03/03 Python
Python随机生成带特殊字符的密码
2016/03/02 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
Python3实现转换Image图片格式
2018/06/21 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
经典的班主任推荐信
2013/10/28 职场文书
应届生求职推荐信
2013/10/28 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
学校联谊协议书
2014/09/16 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
小学感恩节活动总结
2015/03/24 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
Python语言内置数据类型
2022/02/24 Python