У меня есть программа, которая запускает tcp-сокет. Он отлично работает на чем-либо ниже Windows 8.1. Я уже отключил свой брандмауэр и установил все, чтобы разрешить это соединение.C# tcp socket (networkstream.read не работает с 8.1)
1.Первый сервер запускается на окнах 8.1
2. Клиентский сокет подключается.
3. Клиент отправляет строку «login», чтобы инициировать начальное взаимодействие.
-что эта строка отправляется.
4.Создание соединения не выполняется, если сервер настроил networkstream.read();
-Я ничего отладчик не видит, и снова она отлично работает на другом
-систем
вот как настроить сервер я слушать. Это довольно традиционно.
// СЛУШАЕТ КЛИЕНТ
public String listen() {
byte[] bytesFrom = new byte[10025];
string dataFromClient = null;
NetworkStream networkStream = this.clientSocket.GetStream();//get client input
This is the line that fails{
networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);//read client info } -end fail
dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom);//pass client input to String
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"));//parse to end
//MessageBox.Show("data:" + dataFromClient);
networkStream.Flush();
// networkStream.Close();
MessageBox.Show("data:" + dataFromClient);
return dataFromClient;
}
Определить «не удается» ... это исключение? Какое исключение? Не возвращает ли он данные? глядя на код, как вы знаете, сколько байтов было возвращено, так как вы не фиксируете возвращаемое значение из Read? –
В этом проблема, это ломает попытку/уловку. но все время я запускаю его из компилятора, я ничего не вижу в отладке. И я все это время пробовал. фактически я занимаюсь данными. См. Bytesform на следующей строке –