Я недавно начал получать доступ к NetworkStreams, и у меня возник вопрос. Я в настоящее время создание потока, и обрабатывать все входящие сообщения, как они приходят вНесколько сетевых потоков для каждого клиента
Вот код, чтобы проиллюстрировать это:.
client.Connect(serverEndPoint);
clientStream = client.GetStream();
client.NoDelay = true;
ctThread = new Thread(getMessage);
ctThread.Start();
private void getMessage()
{
while (true)
{
Byte[] data = new Byte[800];
String responseData = String.Empty;
Int32 bytes = clientStream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
MessageReceived(this, new ClientMessageEventArgs(responseData));
}
}
В выше, я поднимаю событие «MessageReceived», который обрабатывается согласно пакетным данным. Это отлично работает, но также имеет отдельный случай, когда мне нужно получить данные сразу после отправки моего запроса.
Можно ли иметь два потока на одного клиента? Возможно ли это сделать на одном и том же порту? Как это должно быть обработано? По сути, я хочу иметь возможность отправлять, а затем получать данные сразу после (блокирование).
Я пытался избежать использования библиотеки для своего общения, но я думаю, что могу просто использовать этот. Благодарю. – jgallant