導航:首頁 > 編程語言 > 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傳文件相關的資料

熱點內容
信號分析pdf 瀏覽:925
暴力刪除命令 瀏覽:803
qt如何編譯加快速度 瀏覽:903
php添加數據sql語句 瀏覽:717
免費的小說app有什麼 瀏覽:405
螺桿壓縮機進氣閥動畫 瀏覽:651
兩台伺服器如何做負載均衡 瀏覽:227
程序員的工資是漲的嗎 瀏覽:813
視頻存儲伺服器可以干什麼 瀏覽:463
創建文件夾安裝失敗怎麼回事 瀏覽:832
程序員高考隔了幾年 瀏覽:822
雲伺服器是哪一層 瀏覽:22
jit編譯器的jit什麼意思 瀏覽:330
我想清理手機中空白文件夾 瀏覽:976
電腦e盤文件夾刪不掉怎麼辦 瀏覽:607
外圓凹圓弧編程 瀏覽:461
html5編程題 瀏覽:839
乾燥機製冷壓縮機一開就跳動 瀏覽:388
吉林壓縮空氣流量監測 瀏覽:618
根據地址獲取經緯度php 瀏覽:13