Я программирую Tcp-сервер для XNA-игры, которую меня и друг создают, и мне было интересно, как вы отправляете конкретный клиент, подключенный к серверу с помощью NetworkStream. Например, вы можете получить позицию игрока хоста и отправить его на сервер, который отправит это другому подключенному клиенту.Сетевой поток и несколько соединений
ответ
Вам нужно будет прочитать на несколько вещей:
Это поможет вам начать:
Ваш сервер должен иметь TcpListener
, Создайте список клиентов, если вы хотите поддерживать несколько клиентов. Вы получите один TcpClient
для каждого подключенного клиента. Прочитайте данные с NetworkStream
на каждом из этих клиентов. Когда вы получаете данные по одному из них, отправьте их другим.
Вам нужно будет определить какой-то протокол, чтобы вы знали, когда сообщение от клиента будет завершено, и вы можете отправить его вперед.
Вы можете определить свой собственный протокол, конечно. Но есть и другой вариант: использовать существующий протокол, например, из WCF или, например, JSON-RPC. – svick
- 1. Сетевой поток Mx-плейера
- 2. сетевой поток всегда пуст!
- 3. Несколько соединений и несколько потоков
- 4. Пулов соединений и несколько соединений Струна
- 5. Сетевой поток и целое Линейное программирование
- 6. Сетевой поток: истинный или ложный
- 7. как сетевой поток обнаруживает разъединение
- 8. кабелепровод и розетки: разрешить несколько соединений
- 9. Несколько запросов и закрытие соединений
- 10. LinqPad и несколько соединений оракула
- 11. Как представить несколько входящих TCP-соединений как поток потоков Akka?
- 12. Сетевой входной поток Java для клиента
- 13. VLC воспроизводит сетевой поток из прошлого?
- 14. Обработка VB6 Несколько соединений (многопоточность)
- 15. Несколько HTTP-соединений Mule
- 16. Как объединить аудио-поток и поток видео в один переизданный сетевой поток с помощью flex3?
- 17. MySQL: несколько выборок, несколько соединений?
- 18. Потоковый сетевой поток замораживает поток, который вызывает его метод Close()
- 19. асинхронный сетевой поток для потока (наоборот)
- 20. Сетевой поток или Сериализация отправки изображений?
- 21. Как перезапустить сетевой поток после SocketException
- 22. Сетевой поток не получает всех данных
- 23. Как читать сетевой поток в scala?
- 24. Зашифрованный сетевой поток зависает на ReadLine()
- 25. Сетевой поток TcpClient, смешающий заказ моих данных
- 26. Сетевой поток MJPEG для OpenCV 2
- 27. Несколько соединений Lua Sockets
- 28. Несколько соединений сокетов java
- 29. H2 Несколько соединений
- 30. Несколько соединений в node.js
Я следил за учебником, объясняющим, что TcpClient и NetworkStream, похоже, имеют .Write(). Сначала я изучил серверы сокетов, и вы можете использовать .SendTo(), чтобы сделать это, но я не уверен, как с помощью NetworkStream. – tcoy
На сервере потребуется несколько NetworkStream, по одному для каждого клиента. Предполагая, что количество клиентов не фиксировано, это будет означать, что вам нужно будет закодировать сервер, чтобы распределять и освобождать их по мере необходимости. – ekolis
@ekolis Я понимаю, что прошло много времени с момента публикации, но какую стратегию вы бы использовали для распределения и нераспределения клиентов? – Adsy2010