Я недавно начал изучать 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», которое обрабатывается в соответствии с данными пакета. Это прекрасно работает, но есть и отдельный случай, когда мне нужно получить данные сразу после отправки запроса.
Можно ли иметь два потока на клиента? Это вообще возможно сделать на одном и том же порту? Как это должно быть обработано? По сути, я хочу иметь возможность отправлять, а затем получать данные сразу после этого (блокируя путь).