發送內部串換行符試圖發送包含利用tcpclient和C#,其中的換行字符需要保持完整詞語之間的數的換行字符構成的字符串...通過TcpClient的
運行的C++例子是在這裏:
TCPClient->IOHandler->DefStringEncoding = enUTF8;
TCPClient->IOHandler->WriteLn("write text");
TCPClient->IOHandler->WriteLn("Test\n\n\nTest");
有了這個代碼字符串中的服務器顯示了文本框的方式我想:測試\ n \ n \ NTEST
但是,試圖C#時:
clientStreamWriter.WriteLine("write text");
clientStreamWriter.WriteLine("Test\n\n\nTest");
此字符串顯示了服務器中的文本框爲:測試 然後服務器會返回一個未知的命令響應......好像作爲的StreamWriter打破在換行符的字符串,並將剩餘部分作爲一個新的字符串和服務器期望一個新的命令。
我該如何防止這種情況發生?我不知道服務器代碼是什麼,用C++編寫的程序對我來說不是一種選擇:)
服務器是第三方,不幸的是我無法訪問源代碼。但是因爲它可以與上面的C++例子以及通過telnet一起工作,所以我也應該能夠使它與c#一起工作? – Daniel
服務器**損壞**;你應該依靠供應商來解決它。它只是*發生*有時工作。也就是說,SLak發佈了一個可能工作的答案 - 將'AutoFlush'設置爲'false',然後在每個'WriteLine'調用之後調用'Flush'。請注意,你*不*解決問題;你只是希望避免它。服務器仍然是錯誤的,一旦其他因素髮揮作用(其他進程交換進/出內存,客戶端/服務器之間的路由器改變等),**將**仍然失敗。 –