C# receive 接收的字符串 對比不相等的問題


背景:

  最近寫了一個C/S架構的 C# Socket 通訊項目,服務端,客戶端弄通了之后,客戶端發送給服務端后,服務端回復一個字符串告訴客戶端確認收到了。問題就在這。

問題:

  一開始,我讓服務端回復了一個拉阿伯數字9,客戶端通過byte(一個字節)數組接收后轉換成UTF8的string字符串,和客戶端聲明的字符串“9”對比,然后寫入日志的時候,發現都正常發送了,但是日志記錄的全是失敗,就意味着對比的時候全是false,我就郁悶了,查了查資料,有的說是編碼問題,我於是把客戶端聲明的字符串也轉成了UTF8的字符串,但是對比還是false,debug追蹤下來,兩個字符串全是“9”,沒發現什么不一樣,然而對比結果就是false。對比byte也是false。后來把“9”改成了字母“a”,結果就正確了。由於本人是Java開發,C#才剛練手不久,也沒弄懂,在此記錄一下,希望大神能給指點一下。

 

代碼如下:

//接收服務端消息,確認發送成功
            byte[] result = new byte[1];
            string str = "a";
            byte[] rstr = Encoding.UTF8.GetBytes(str);
            string newStr = Encoding.UTF8.GetString(rstr,0,str.Length).ToString().Trim();
            int reStr = PDASocket.Receive(result);
            string stringRtn = Encoding.UTF8.GetString(result, 0, result.Length).ToString().Trim();
            if (!string.IsNullOrEmpty(stringRtn))
            {
                label19.Text = stringRtn;
            }
            if (stringRtn == newStr)
            {
                sendLog = "發送成功";
            }
            else
            {
                sendLog = "發送失敗";
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM