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

 更新时间:2019年09月24日 10:12:39   作者:以梦为马越骑越傻  
这篇文章主要介绍了python使用socket实现的传输demo,结合实例形式分析了Python使用socket库基于TCP协议实现的客户端与服务器端相关操作技巧,需要的朋友可以参考下

本文实例讲述了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进行数据预处理的4个重要步骤

    python进行数据预处理的4个重要步骤

    在数据科学项目中,数据预处理是最重要的事情之一,本文详细给大家介绍python进行数据预处理的4个重要步骤:拆分训练集和测试集,处理缺失值,处理分类特征和进行标准化处理,需要的朋友可以参考下
    2023-06-06
  • pandas如何读取mysql数据

    pandas如何读取mysql数据

    这篇文章主要介绍了pandas如何读取mysql数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python中cv2模块安装详细图文教程

    python中cv2模块安装详细图文教程

    在Python中cv2是OpenCV库的一个模块,这是一个开源的计算机视觉和机器学习软件库,下面这篇文章主要给大家介绍了关于python中cv2模块安装的相关资料,需要的朋友可以参考下
    2024-05-05
  • Python Scrapy实战之古诗文网的爬取

    Python Scrapy实战之古诗文网的爬取

    本文将利用Python中Scrapy框架,实现爬取古诗文网上的诗词数据,具体包括诗词的标题信息。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-05-05
  • Django 返回json数据的实现示例

    Django 返回json数据的实现示例

    这篇文章主要介绍了Django 返回json数据的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • python使用numpy读取、保存txt数据的实例

    python使用numpy读取、保存txt数据的实例

    今天小编就为大家分享一篇python使用numpy读取、保存txt数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Django中celery执行任务结果的保存方法

    Django中celery执行任务结果的保存方法

    今天小编就为大家分享一篇Django中celery执行任务结果的保存方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • PyQt5实现无边框窗口的标题拖动和窗口缩放

    PyQt5实现无边框窗口的标题拖动和窗口缩放

    这篇文章主要为大家详细介绍了PyQt5实现无边框窗口的标题拖动和窗口缩放,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Python3实现获取图片文字里中文的方法分析

    Python3实现获取图片文字里中文的方法分析

    这篇文章主要介绍了Python3实现获取图片文字里中文的方法,结合实例形式分析了Python基于文字识别引擎tesseract-ocr针对图片里中文识别的相关操作技巧与操作注意事项,需要的朋友可以参考下
    2018-12-12
  • 在Python的Django框架中实现Hacker News的一些功能

    在Python的Django框架中实现Hacker News的一些功能

    这篇文章主要介绍了在Python的Django框架中实现Hacker News的一些功能,包括投票“顶”评论等功能,需要的朋友可以参考下
    2015-04-04

最新评论