思路:
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,上傳...