Для отправки файла по TCP в Golang можно использовать пакет net для создания сервера и клиента. Ниже приведен пример простого сервера и клиента, который отправляет и принимает файл:
package main import ( "fmt" "net" "os" ) func main() { // Соединяемся с сервером conn, err := net.Dial("tcp", "localhost:8080") if err != nil { fmt.Println("Error connecting:", err.Error()) os.Exit(1) } defer conn.Close() // Создаем файл для записи file, err := os.Create("received_file.txt") if err != nil { fmt.Println("Error creating file: ", err.Error()) os.Exit(1) } defer file.Close() // Принимаем файл по соединению _, err = io.Copy(file, conn) if err != nil { fmt.Println("Error receiving file: ", err.Error()) } }
Эти примеры создадут сервер, который отправляет файл file.txt клиенту, который принимает файл и сохраняет его как received_file.txt. Для запуска сервера и клиента вам необходимо запустить две разные программы.
Пожалуйста, убедитесь, что у вас есть файл file.txt в той же директории, где находятся эти программы.
Для отправки файла по TCP в Golang можно использовать пакет net для создания сервера и клиента. Ниже приведен пример простого сервера и клиента, который отправляет и принимает файл:
Пример сервера:
package mainimport (
"fmt"
"net"
"os"
)
func main() {
// Создаем слушатель на порту 8080
l, err := net.Listen("tcp", ":8080")
if err != nil {
fmt.Println("Error listening:", err.Error())
os.Exit(1)
}
defer l.Close()
fmt.Println("Listening on 0.0.0.0:8080")
// Принимаем входящее соединение
conn, err := l.Accept()
if err != nil {
fmt.Println("Error accepting: ", err.Error())
os.Exit(1)
}
defer conn.Close()
// Открываем файл на чтение
file, err := os.Open("file.txt")
if err != nil {
fmt.Println("Error opening file: ", err.Error())
os.Exit(1)
}
defer file.Close()
// Отправляем файл по соединению
_, err = io.Copy(conn, file)
if err != nil {
fmt.Println("Error sending file: ", err.Error())
}
}
Пример клиента:
package mainimport (
"fmt"
"net"
"os"
)
func main() {
// Соединяемся с сервером
conn, err := net.Dial("tcp", "localhost:8080")
if err != nil {
fmt.Println("Error connecting:", err.Error())
os.Exit(1)
}
defer conn.Close()
// Создаем файл для записи
file, err := os.Create("received_file.txt")
if err != nil {
fmt.Println("Error creating file: ", err.Error())
os.Exit(1)
}
defer file.Close()
// Принимаем файл по соединению
_, err = io.Copy(file, conn)
if err != nil {
fmt.Println("Error receiving file: ", err.Error())
}
}
Эти примеры создадут сервер, который отправляет файл file.txt клиенту, который принимает файл и сохраняет его как received_file.txt. Для запуска сервера и клиента вам необходимо запустить две разные программы.
Пожалуйста, убедитесь, что у вас есть файл file.txt в той же директории, где находятся эти программы.