Я не совсем уверен, что вызывает эту проблему. У меня есть два поточных клиента, взаимодействующих с сервером в одно и то же время, но по какой-то причине только «нечетные» sw.Flush() фактически отправляют данные, которые будут отображаться на клиентской консоли.Только «нечетный» sw.Flush() работает для отправки streamWriter.WriteLine()
Например, на сервере я достижение этой точки:
while (true)
{
sw.WriteLine("BOO");
sw.Flush();
Console.ReadKey();
}
В первый раз я нажимаю клавишу «BOO» отправляется в первое окно клиента. Во второй раз «BOO» отправляется во второе клиентское окно. Однако в течение 3-го и 4-го раза нажата клавиша, ничего не печатается, и программа продолжается. Затем он снова работает на 5-й и 6-й, но не для 7-го и 8-го и т.д.
Это может быть что-то в моем обращении клиента, который будет вставлен ниже:
while (true)
{
while (sr.ReadLine() != null)
{
Console.WriteLine(readServerResponse(sr));
}
}
Метод readServerResponse
таким образом:
public static string readServerResponse(StreamReader sr)
{
string responseString = "";
try
{
responseString = sr.ReadLine();
}
catch(Exception e)
{
Console.WriteLine("Exception: " + e.ToString());
}
return responseString;
}
Если бы кто-нибудь мог пролить свет на это, я был бы очень благодарен.
Совершенно, точно исправление, в котором я нуждался. Очень признателен. – James
Добро пожаловать :) –