Как отправить файл по TCP Golang? как через net передать файл? нужен пример сервера и клиента

26 Ноя 2022 в 19:53
148 +1
0
Ответы
1

Для отправки файла по TCP в Golang можно использовать пакет net для создания сервера и клиента. Ниже приведен пример простого сервера и клиента, который отправляет и принимает файл:

Пример сервера:

package main
import (
"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 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 в той же директории, где находятся эти программы.

16 Апр в 17:05
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 017 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир