导航:首页 > 编程语言 > pythonsocket传文件

pythonsocket传文件

发布时间:2022-06-08 06:50:12

⑴ 以封装成帧的形式传送多个文件python网络编程

摘要 import socket #网路编程模块

⑵ python socket 做了一个传文件的脚本 为什么在IDLE里运行没问题 但是双击直接打开就会抱错

>>>如果你没有在文件开头# encoding: utf-8,idle里面有设置默认编码的
>>>如果是在windows下面,而你的编码又是utf-8的话,那么你双击运行,如果含有中文是会报错的,因为windows(中文版本)的cmd的默认编码是gbk的,这个当然会出错了,所以解决办法是将文件保存为gbk或者gb18030或者cp936,在文件开头加上#_*_encoding:cp936_*_就可以了。
>>>如果是在linux下面的话,设置成utf-8的吧。

⑶ Python,socket如何实现通过Server将client1的数据传给client2。

普通情况下是不行的。但是通过线程或者进程间的数据共享,还是可以的。

提供一个思路,使用多线程socketserver,针对每一个用户创建一个服务线程,然后在线程之间通过消息队列,共享数据。

参考:刘江的Python教程中关于多线程和多进程的章节

⑷ Python用socket传输文件,收到的文件大小不一样,求解答,谢谢

1.电脑已经搭建python环境

2.深入到需要传输的文件目录下,此处以分享 nemo-huiyuanfei 文件为例

3.在路径栏输入 cmd 按回车进入终端
4.输入命令 python -m SimpleHTTPServer 8090 按回车 (端口号可以任意,不用必须为8090)

5.在局域网中任意浏览器输入框输入 文件所在主机 IP + Port 即可访问此文件目录并下载 ()

6.点击需要下载的文件即可下载
7. 【注意】python3.X 的命令输入为 python -m http.server 8090

⑸ python socket 网络编程 ,服务器端发的文件大小跟客户端接受打文件大小不一样 这是什么原因

很简单,你说让服务端发1024大小他就发1024大小吗,不一定tcp协议他会把内容先丢缓存再缓存拿,假设你让服务器发1024大小他有时候会分好几次发,你只要实时读取客户端接收文件大小就好了,和服务端发过来文件大小进行比较然后考虑后面要不要继续接收

⑹ python使用socket发送数据,没有响应。

因为我不知道你的 SMGP_CLIENT 和你的GETREQUSTPACKET 怎么实现的 我贴一下 发送数据的代码吧 有问题你吧详细的代码贴上我看看

import socket

mysocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

mysocket.connect(("192.168.5.30",80))

BUFFER_SIZE = 1024

buff="aaaaaaaaaaaa"


mysocket.send(buff)

print (mysocket.recv(BUFFER_SIZE))

mysocket.close()

因为是给 服务器的80端口发数据 所以得到的返回值肯定是 无法找到页面

⑺ 请教如何使用python的socket发送二进制数据

socket发送的本来就是按二进制发送,你是想把数据打包成str用socket发出去吧?
可以用struct来打包
import struct
data = struct.pack('i', 123)
然后用socket发送就行了,这里打包一个整数的例子,struct很强大可以网络一下具体用法。

⑻ python中,如何将一个指定的文件发送到对方主机的指定端口呢(用socket方式) 新手求指教!

#发送端
#-*-coding:utf-8-*-
importTkinter
importtkFileDialog
fromsocketimport*
importstruct
importos

defclient(filename):
Addr=('127.0.0.1',8000)
BUFSIZE=2048
Sendsocket=socket(AF_INET,SOCK_STREAM)
Sendsocket.connect(Addr)

FileHead=struct.pack('128s11i',filename,0,0,0,0,0,0,0,0,os.stat(filename).st_size,0,0)

Sendsocket.send(FileHead)

fp=open(filename,'rb')

while1:
FileData=fp.read(BUFSIZE)
ifnotFileData:
break
Sendsocket.send(FileData)

fp.close()
Sendsocket.close()

defFileOpen():
r=tkFileDialog.askopenfilename(title='PythonTkinter',
filetypes=[('Allfiles','*')])
filename=r.split('/')
client(filename[-1])

root=Tkinter.Tk()
button1=Tkinter.Button(root,text='FileOpen',height=8,width=14,bg='blue',
command=FileOpen)
button1.pack()

root.mainloop()#接收端
#-*-coding:utf-8-*-
fromsocketimport*
importos
importstruct


Addr=('127.0.0.1',8000)
BUFSIZE=1024
FileInfoSize=struct.calcsize('128s32sI8s')

SocketRecv=socket(AF_INET,SOCK_STREAM)
SocketRecv.bind(Addr)
SocketRecv.listen(5)

print"waitting........"
conn,addr=SocketRecv.accept()
print"sendfrom",addrFileHead=conn.recv(FileInfoSize)
filename,temp1,filesize,temp2=struct.unpack('128s32sI8s',FileHead)
printfilename,len(filename),type(filename)
printfilesize

filename='new_'+filename.strip('0')
fp=open(filename,'wb')
restsize=filesize

while1:
ifrestsize<BUFSIZE:
filedata=conn.recv(restsize)
else:
filedata=conn.recv(BUFSIZE)
ifnotfiledata:
break
fp.write(filedata)
restsize=restsize-len(filedata)
ifrestsize==0:break
fp.close()

conn.close()
SocketRecv.close()

print'Finished!!!'

阅读全文

与pythonsocket传文件相关的资料

热点内容
3dmax取消当前命令 浏览:359
显示当前模式下所有可执行的命令 浏览:758
为什么程序员拿了股份还要高薪 浏览:946
电脑运行命令里的记录能删吗 浏览:697
linuxwss 浏览:848
一个软件需要登录服务器地址 浏览:923
哪里有解压程序 浏览:299
java静态方法内存 浏览:545
我的世界ec服务器如何带vip 浏览:737
什么是由解析器域名和服务器构成 浏览:414
自动识别电影信息源码 浏览:849
柱筋箍筋加密区怎么算 浏览:48
钢筋中加密15倍是什么意思 浏览:366
esc加密算法 浏览:518
linux运行exe命令 浏览:124
一级建造师管理pdf 浏览:720
如何更改服务器登录账号 浏览:317
看pdf文件软件 浏览:183
android恢复模式 浏览:808
生命令人忧 浏览:597