現在、私はTCPプロジェクトサーバといくつかのデバイスに接続することを含むネットワークプロジェクトに取り組んでいます。長い間、私は正常にいくつかのデバイスモデルのためのTCPコマンドを送信し、応答を受信するための下のコードを使用しましたが、Windows Telnet Server 2003とFortigateデバイスを試すと、いくつかのキャラクターは??%?????? ?????のように設定されています。応答を受信するためのc#TcpClientは正常に接続されたTelnetサーバ/デバイスからの有効な応答を読み取ることができません
My機能は次のとおりです。
private string receive()
{
StringBuilder sbReadBuffer = new StringBuilder();
bool isFinished = false;
NetworkStream ns = tcpClient.GetStream();
DateTime lastConTime = DateTime.Now;
while (!isFinished)
{
if (!ns.DataAvailable)
{
Thread.Sleep(200);
if ((DateTime.Now - lastConTime).TotalSeconds > Prms.tcpSendReceiveTimeoutInSeconds)
break;
else
continue;
}
Int32 receiveCount = ns.Read(receiveBuffer, 0, receiveBuffer.Length);
String received = new ASCIIEncoding().GetString(receiveBuffer, 0, receiveCount);
sbReadBuffer.Append(received);
foreach (String terminaterToken in terminaterTokens)
if (sbReadBuffer.ToString().EndsWith(terminaterToken))
isFinished = true;
lastConTime = DateTime.Now;
}
return sbReadBuffer.ToString();
}
}
とTCPコネクションを構築し、受信機能を呼び出すための:
TcpClient tcpClient = new TcpClient()
{
SendTimeout = 10000,
ReceiveTimeout = 10000
};
tcpClient.Connect(wanIp, 23);
String initialMessage = receive();
私は上記のコードは問題なく動作しますデバイスのための受信したメッセージをテストし、私は最初の応答が常に "??%????????" "welcome"のような論理的な応答が続きました。
私のテストでは、プログラムがサーバー/デバイスに正常に接続されているが、有効な応答が得られないことがわかりました。これについてのアイデアは?