Python爱好者 socket模块传输文件 -

Python爱好者 socket模块传输文件 -

socket模块传输文件

热度 1已有 32 次阅读2012-10-31 14:14 |个人分类:python| socket, 传送文件

分享到:        

在python中,socket 模块为开发人员提供了底层网络接口,开发人员可以用socket模块实现底层的基本网络通信。

Socket 模块提供了 UNIX 程序员所熟悉的基本网络服务(也称为 BSD API)。这个模块中提供了在构建 socket 服务器和客户机时所需要的所有功能。

这个 API 与标准的 C API 之间的区别在于它是面向对象的。在C中,socket描述符是从socket调用中获得的,然后会作为一个参数传递给BSD API函数。在Python中,socket 方法会向应用socket方法的对象返回一个socket对象。

以下是一篇利用socket模块传输文件的代码:

客户端(发送文件):

#!/usr/bin/python
#coding=utf-8

import socket
import thread
import wx

class Sender():

def __init__(self):
        self.__s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

def setIP(self,ip):
        self.__ip = ip
        self.__s.connect((self.__ip,9807))

def sendMsg(self,s):
        self.__s.send(s)

class MyFrame(wx.Frame):

def __init__(self,parent,id):
        wx.Frame.__init__(self,parent,id,'聊天室客户端',size=(200,100))#实例化窗口
        self.__p = wx.TextCtrl(self,pos = (10,10),size = (100,20)) #实例化文本框
        self.__f = wx.TextCtrl(self,pos = (10,30),size = (100,20)) #实例化文本框
        self.__p.SetValue('127.0.0.1')
        #self.__m = wx.TextCtrl(self,pos = (10,60),size = (100,300))
        l = wx.Button(self,label='连接',pos = (120,10),size = (50,20))#实例化按钮
        b = wx.Button(self,label='发送',pos = (120,30),size = (50,20))#实例化按钮
        self.Bind(wx.EVT_BUTTON, self.OnLog, l)
        self.Bind(wx.EVT_BUTTON,self.OnSend,b)#绑定事件
        self.__s = Sender()
  
    def OnLog(self,event):
        self.__s.setIP(self.__p.GetValue())

def OnSend(self,event):#定义一个按钮事件
        f = file(self.__f.GetValue(),'r')
        self.__s.sendMsg(f.read())
        f.close()

class MyApp(wx.App): #定义wx.App的子类
    def OnInit(self): #
        frame = MyFrame()
        frame.Show()
        return True

app = wx.App()
app.MainLoop()

服务器端(接收文件):

#!/usr/bin/python
#coding=utf-8
##@Author 张亚军
##@Date 2012-10-30

import socket
import time

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('127.0.0.1',9807))#监听本地端口
s.listen(3)

while True:
    conn,addr = s.accept()
    while True:
        data = conn.recv(8192)
        if not data:
            break
        f = file('D:\\data\\'+str(time.time())+'.txt','w')
        f.write(data)
        f.flush()
        f.close()
        print '成功'

s.close()

主要思想就是在客户端把文件读成字符串,发送到服务器端之后服务器把得到的字符串写入文件

posted on 2013-01-03 21:03 lexus 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2013/01/03/2843349.html

Python爱好者 socket模块传输文件 -相关推荐

  1. python中socket模块常用吗_python中socket模块详解

    socket模块简介 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.socket通常被叫做"套接字",用于描述IP地址和端口,是一个通信 ...

  2. Python之glob模块进行文件匹配及遍历

    Python之glob模块进行文件匹配及遍历 glob是python自带的一个操作文件的相关模块,用来查找符合特定规则的文件路径,是python处理文件路径相关问题中常用的包. glob 文件名模式匹 ...

  3. 三十八、网络通信Socket模块实现文件传输

    @Author: Runsen 实现的效果如下的Gif所示,就是网络通信Socket模块实现文件下载传输. 文章目录 服务端 客户端 扩展 服务端 首先需要获取本机ip,这里服务端采用多线程的方法,就 ...

  4. python的socket模块_Python socket模块方法实现详解

    这篇文章主要介绍了python socket模块方法实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 socket ssh (不带防止粘包的方 ...

  5. python中socket模块常用吗_python网络学习笔记——socket模块使用记录

    此文章记录了笔者学习python网络中socket模块的笔记. 建议初次学习socket的读者先读一遍socket模块主要函数的介绍. socket模块的介绍可以参考笔者的前一篇关于socket官方文 ...

  6. python基础===socket模块的讲解(转)

    一.网络知识的一些介绍 socket 是网络连接端点.例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接 www.jb51.net的Web ...

  7. python-socket模块介绍

    基本的 Python socket 模块 Python 提供了两个基本的 socket 模块.第一个是 Socket,它提供了标准的 BSD  Sockets API.第二个是 SocketServe ...

  8. 使用C++实现Socket编程传输文件

    使用: (1)首先运行服务端,待服务端运行起来: (2)最后运行客户端,输入要传输文件到哪个目标机器的IP地址: (3)输入传输文件的路径及文件(完成的路径),其中包含文件的类型,也就是后缀需要包含( ...

  9. Python的os模块常用文件夹的增删改查详解

    python常用os模块 增 os.makedirs("path\\目录") 用于递归创建目录 删 os.remove("path")用于删除指定路径(path ...

最新文章

  1. 独家 | 为你的数据科学项目提供有力支撑——3个寻找数据集的最佳网站
  2. MixNet了解一下,来自Google Brain最新SOTA移动AI架构
  3. C# 从DataSet导出到Excel
  4. 初学Java的5个阶段,你在哪个阶段?
  5. 皇室战争:渔夫化身“战场搅屎棍”,见人就拉,选卡很关键
  6. CRM Fiori Simulation pipeline应用点了bubble控件的实现
  7. 【CodeForces - 298C】Parity Game (思维,有坑)
  8. htmlentities在mysql_PHP和mySQL:何时确切使用htmlentities?
  9. IDC:今年全球认知和人工智能系统支出将突破125亿美元
  10. 利用sdkman安装kotlin和java环境
  11. web表格增删改_白话django之数据的增删改
  12. [bzoj4826][Hnoi2017]影魔
  13. 大厂阿里程序员的薪资:简述阿里的薪酬体系和职级
  14. java计费系统_Java网吧计费系统
  15. 时区缩写与UTC(GMT)时差对照表
  16. KafKa 开启 SASL 验证
  17. 在tensorflow框架下添加正则化约束l1、l2的方法
  18. Core Dump技术介绍
  19. python“反反爬虫”
  20. for_each 解读

热门文章

  1. homework-08
  2. SwiftUI中如何使用App Tracking Transparency Framework
  3. 泰坦科技MT4平台搭建提供一站式白标方案 快速开启外汇经纪业务
  4. 信贷风险定价怎么做?
  5. loadrunner的吞吐量和吞吐率
  6. sql数据库连接:用户‘sa’登录失败问题破解(百度加个人总结)
  7. 20分 html文件是,HTML语言试卷(A)
  8. python(2)带解析和要点
  9. matlab中单独存图_奇怪的Matlab画图技巧系列1–保存高清大图
  10. java设计九宫格拼图软件哪个好用_九宫格拼图软件下载_抖音很火的九宫格拼图软件app下载_易玩网...