Я выполнил команду this tutorial, чтобы настроить клиентское приложение -> серверное приложение на основе TCP-приложений, где сервер получает файл от клиента, и он работает хорошо. Резюме структуры будет:C# Использование TcpListener как на клиенте, так и на сервере
Сервер использует TcpListener слушать
Клиент использует TcpClient отправить
Теперь я пытаюсь делать противоположное, посылая файл от сервера к клиенту, используя тот же метод. Я попробовал следующую структуру:
Сервер использует TcpClient отправить
Клиент использует TcpListener слушать
Однако я получаю следующее ошибки:
Только одно использование каждого из них адрес протокола (протокол/сетевой адрес/порт), как правило, разрешен
Это потому, что клиент и сервер слушают тот же порт, что и ошибка? Как еще я могу отправлять и получать файлы в обоих направлениях?
Мой код - это точный код, указанный в этой теме, который я связал, поэтому я не размещал его здесь. Дайте мне знать, если я должен разместить свой код здесь, а :)
Обычно не рекомендуется использовать TcpListener на клиенте, потому что может быть трудно читать клиент с сервера (межсетевой экран, NAT и т. Д.). Что именно вы пытаетесь сделать? Может быть, клиент может сначала запросить этот файл, а затем сервер отправит его в ответ? – Evk
Я пытаюсь отправить файл с сервера на клиент @ Evk. Я уже сделал функциональность для отправки файла с клиента на сервер. Мне нужно сделать обратное, так что это двухсторонняя связь. – Dinuka
Я имею в виду, что клиент может сначала запросить этот файл (отправить что-то на сервер, что означает «дать мне файл X»), и сервер отправит этот файл в ответ (по тем же канал). Tcp уже является двусторонней связью, поэтому для этого вам не нужны отдельные каналы. – Evk