TcpClient не получает байты с сервера - PullRequest
0 голосов
/ 26 сентября 2018

ИСПРАВЛЕННАЯ ПРОБЛЕМА: клиент не получил ни одного байта с сервера, поскольку его нужно было добавить в список исключений брандмауэра.

У меня есть работающее соединение сервер-клиент, клиентможет отправлять байты на сервер, а сервер может читать его.проблема в том, что клиент не получает никаких байтов от самого сервера.Я очень новичок в сетевом программировании, пожалуйста, не будь груб со мной.

Отправка байтов клиенту

try
{
    byte[] buff = Encoding.ASCII.GetBytes("message from server - " + 
    new Random().Next(8000) + "\n");

    NetworkStream ns = client.GetStream();
    ns.Write(buff, 0, buff.Length);
}
catch(Exception r) 
{ 
    richTextBox1.AppendText("Sending data to - " + client.Client.RemoteEndPoint + "\n" + r.Message);
}

Получение байтов с сервера

while(true)
{
    try
    {
        byte[] buff = new byte[1000];
        NetworkStream ns = client.GetStream();
        ns.Read(buff, 0, buff.Length);

        string s = Encoding.ASCII.GetString(buff);
        BackThread.ReportProgress(0, s);
    }
    catch(Exception r) 
    { 
        richTextBox1.AppendText("Failed to get data from server\n" + r.Message + "\n"); 
     }
}

Иногда клиент получает исключение WsaCancelBlockingCall при попытке получить байты с сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...