TCP CS檔案傳輸 傳送端

2021-08-26 15:18:54 字數 1361 閱讀 5559

思路:

1,建立連線請求

2,通過命令列引數,提取檔名(帶路徑)os.args

3,獲取檔案屬性,獲取檔名(不帶路徑)os.stat()

4,傳送檔名給接收端

5,驗證接收端是否回應,在此用回執「ok「字串判斷

6,如果接收成功,則進行檔案傳送操作

1),以唯讀方式開啟待傳送檔案

2),讀指定檔案到buf中

3),把讀到的檔案寫入socket傳送到接收端

4),判斷檔案讀取完之後關閉檔案,關閉連線

package main

import (

"net"

"fmt"

"os"

"io")//

func sendfile(filepath string, conn2 net.conn)

//建立buf讀檔案,存入buf中

buf := make(byte,4096)

defer file.close()

for

//判斷檔案讀取,傳送完畢.結束conn,關閉

if err == io.eof

//借助conn寫buf中的資料到接收端

_, err = conn2.write(buf[:n])

if err != nil

}}//

func main()

defer conn.close()

//通過命令列,提取檔名(帶路徑)

fmt.println("連線成功!")

//2,通過命令列引數,提取檔名(帶路徑)os.args

args := os.args

fmt.println("提取到的檔案路徑:", args[1])

// 3,獲取檔案屬性,獲取檔名(不帶路徑)os.stat()

fileinfo, err := os.stat(args[1])

if err != nil

// 4,傳送檔名給接收端

_, err = conn.write(byte(fileinfo.name()))

if err != nil

fmt.println("傳送端寫入")

buf := make(byte,4096)

n, err := conn.read(buf)

if err != nil

// 5,驗證接收端是否回應,在此用回執「ok「字串判斷

ifstring(buf[:n]) != "ok"

// 6,如果接收成功,則進行檔案傳送操作

sendfile(args[1], conn)

}

socket 檔案傳輸 C 傳送端

接收端 c,使用socket傳輸檔案的服務端 主函式也可作為一般服務程式的基本框架。主程式 author hhy time 2020 3 7 basic io include include include structure include include socket include signa...

python ftp檔案傳輸服務端

from socket import import os,sys import signal,time host port 8888 addr host,port self.c.send file.encode def getfilename self l os.listdir l1 for i i...

FTP專案,檔案傳輸協議,通過網路傳送檔案

ftp專案,檔案傳輸協議,通過網路傳送檔案 首先用網路程式設計的知識建立乙個服務端和乙個客戶端,使他們能實現傳輸功能 ls,顯示服務端的檔案 popen 是乙個指向以 null 結束的 shell命令字串的指標。這行命令將被傳到 bin sh並使用 c 標誌,shell 將執行這個命令。put,上傳...