Итак, здесь я искал теоретическую проблему о том, как серверы и клиенты работают на машинах. Я знаю все процессы NET, но мне не хватает чего-то, относящегося к коду. Я не мог найти что-то связанное с этим.TCPListener/TCPClient Server-Client Чтение/чтение данных
I код в Visual C# 2008, я использую регулярные TcpClient/TcpListener с 2 различными проектами:
Project1 (Клиент)
Проект2 (Server)
Мои вопросы, может быть, так просто:
1-> О том, как сервер получает данные, обработчики событий a возможно? В моих первых кодов сервера я используется, чтобы сделать этот цикл:
while (true)
{
if (NetworkStream.DataAvailable)
{
//stuff
}
Thread.Sleep(200);
}
Я столкнуться это как гречихи способ контролировать входящие данные с сервера. НО сервер всегда готов к приему данных.
Мой вопрос: Есть что-то вроде ...? ->
AcceptTcpClient();
Я хочу обработчик, который ждет, пока что-то не произойдет, в этом случае будет получен определенный прием данных сокета.
2-> Общие сетевые методы ввода-вывода.
Проблема (помимо того, что я - noob) - это обработка нескольких данных. Если я использую для отправки большого количества данных в массив байтов, отправка может прерываться, если я отправляю больше данных. Все данные подключены, и при получении возникают ошибки. Я хочу обрабатывать несколько записей для отправки и получения.
Возможно ли это?
** 1) ** 'NetworkStream.Read (buffer, ..., ...)' является блокирующим вызовом. Вам не нужен этот странный цикл while. ** 2) ** 'отправка может сломаться, если я отправлю больше данных'. Нет, вы можете безопасно использовать 'NetworkStream.Write (buffer, ..., ...)' –