package main import ( "fmt" "io" "net" "os" ) // 客户端接收文件的示例函数 func ReceiveFile(conn net.Conn, filename string, filesize int64) error { file, err := os.Create(filename) if err != nil { return err } defer file.Close() var received int64 = 0 buf := make([]byte, 4096) for received < filesize { n, err := conn.Read(buf) if err != nil { if err == io.EOF { break } return err } file.Write(buf[:n]) received += int64(n) } fmt.Printf("文件 %s 接收完成,共 %d 字节\n", filename, received) return nil } // 客户端发送文件的示例函数 func SendFile(conn net.Conn, filepath string) error { file, err := os.Open(filepath) if err != nil { return err } defer file.Close() buf := make([]byte, 4096) for { n, err := file.Read(buf) if err != nil { if err == io.EOF { break } return err } _, err = conn.Write(buf[:n]) if err != nil { return err } } fmt.Printf("文件 %s 发送完成\n", filepath) return nil }