我目前正在研究異步TCP客戶端。我能夠發送和接收消息。但是,下面的代碼讓我發瘋的時刻:
int rx = theSockId.thisSocket.EndReceive(asyn);
char[] rcvd = new char[rx + 1];
System.Text.Decoder d = System.Text.Encoding.ASCII.GetDecoder();
int charLen = d.GetChars(theSockId.dataBuffer, 0, rx, rcvd, 0);
System.String szData = new System.String(rcvd);
通常情況下,一切工作正常 - 但只要消息以美元符號($)開始,我只看到這個字符。不一定是整個「消息」 - 當在插座接收的任何數據
我正在尋找一個很長一段時間,但我找不到任何解決方案....
當郵件以美元符號開頭時,rx的值是多少? – Polity
只是一個快速的想法,你確定文本是用ASCII編碼而不是UTF7/8/16? – Robert
有趣的是,int rx的值是'1'而不是15 ... – lenniep