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的print用法示例
Feb 11 Python
python使用xlrd模块读写Excel文件的方法
May 06 Python
对python制作自己的数据集实例讲解
Dec 12 Python
python绘制地震散点图
Jun 18 Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
基于python实现地址和经纬度转换
May 19 Python
python中导入 train_test_split提示错误的解决
Jun 19 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
python和opencv构建运动检测器的实现
Mar 03 Python
如何正确理解python装饰器
Jun 15 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
php 购物车的例子
2009/05/04 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
详解Javascript数据类型的转换规则
2016/12/12 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
详解Python用户登录接口的方法
2019/04/17 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
django rest framework使用django-filter用法
2020/07/15 Python
文案策划求职信
2014/04/14 职场文书
创文明城市标语
2014/06/16 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
干部考核工作总结2015
2015/07/24 职场文书
队列队形口号
2015/12/25 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫
python实现会员管理系统
2022/03/18 Python
Python+Tkinter制作专属图形化界面
2022/04/01 Python
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python
Python+pyaudio实现音频控制示例详解
2022/07/23 Python
Python中的 No Module named ***问题及解决
2022/07/23 Python