Невозможно получить сообщение из консольного приложения C# сервера TCP/IP
Я должен создать клиент TCP/IP на существующем сервере (который имеет специальную документацию), я следовал тому же, но ответа от сервера по-прежнему не получалось. Первоначально это была проблема формата сообщений и SMTP-команд, которые я заменил из другой рабочей команды.
Я должен использовать SSL без сертификата клиента для входа в систему.
TcpClient client = new TcpClient("Server DNS", PORT);
Console.WriteLine("-------------------------- \nConnection is : " + client.Connected);
SslStream stream = new SslStream(client.GetStream(), false, VerifyServerCertificate, null);
stream.AuthenticateAsClient("Server DNS");
Console.Write("Authentication status :" + stream.IsAuthenticated);
// FOR NOW I AM ONLY SENDING LOGIN COMMAND
string line = "BDAT 30 LAST<EOL>{login command}<LF>useridpassword";
stream.Write(Encoding.UTF8.GetBytes(line));
stream.Flush();
string serverMessage = ReadMessage(stream);
Console.WriteLine("\nServer says: {0}", serverMessage);
stream.Close();
Это отправляет команду, но ответное сообщение всегда пусто. Вот метод, который я использую для ReadMessage.
static string ReadMessage(SslStream sslStream)
{
// Read the message sent by the client.
// The client signals the end of the message using the
// "<EOF>" marker.
byte[] buffer = new byte[2048];
StringBuilder messageData = new StringBuilder();
int bytes = -1;
sslStream.ReadTimeout = 60000;
do
{
// Read the client's test message.
bytes = sslStream.Read(buffer, 0, buffer.Length);
sslStream.Flush();
// Use Decoder class to convert from bytes to UTF8
// in case a character spans two buffers.
Decoder decoder = Encoding.UTF8.GetDecoder();
char[] chars = new char[decoder.GetCharCount(buffer, 0, bytes)];
decoder.GetChars(buffer, 0, bytes, chars, 0);
messageData.Append(chars);
// Check for EOF or an empty message.
if (messageData.ToString().IndexOf("<EOF>") != -1)
{
break;
}
} while (bytes != 0);
return messageData.ToString();
}
Ниже приведен скриншот ошибки кода того же кода
Я также получаю эту ошибку при использовании точек останова
Извините за этот длинный пост, но я думаю, что эта информация была необходима. Пожалуйста, любая помощь приветствуется. Очень расстраивающая ситуация, так как я не смог продолжить с тех пор, как за последние 8 дней она прошла.
Спасибо.