Здесь я устраняю теоретическую проблему о том, КАК серверы и клиенты работают на машинах. Я знаю все процессы NET, но мне не хватает чего-то, относящегося к коду. Я не смог найти что-то связанное с этим.
Я кодирую в Visual C# 2008, я использую обычный TCPClient/TCPListener с двумя разными проектами:
Проект1 (Клиент)
Проект2 (сервер)
Мои проблемы могут быть такими простыми:
1-> О том, как сервер получает данные, возможны ли обработчики событий? В моих первых серверных кодах я использовал этот цикл:
while (true)
{
if (NetworkStream.DataAvailable)
{
//stuff
}
Thread.Sleep(200);
}
Я сталкиваюсь с этим как с дерьмовым способом контролировать входящие данные с сервера. НО сервер всегда готов к приему данных.
Мой вопрос: Есть что-нибудь вроде...? ->
AcceptTcpClient();
Мне нужен обработчик, который ждет, пока что-то не произойдет, в данном случае получение данных определенного сокета.
2-> Общие сетевые методы ввода-вывода.
Проблема (кроме того, что я нуб) заключается в том, как обрабатывать множественную запись данных. Если я использую для отправки много данных в массиве байтов, отправка может прерваться, если я отправлю больше данных. Все данные слились и при приеме возникают ошибки. Я хочу обрабатывать несколько записей для отправки и получения.
Это возможно?
NetworkStream.Read(buffer,...,...)
— это блокирующий вызов. Вам не нужен этот странный цикл while. 2)the sending can break if I send more data
. Нет, вы можете безопасно использоватьNetworkStream.Write(buffer,...,...)
- person L.B   schedule 17.12.2011