我在C#編寫的一個小插座的應用程序,在每一個當前版本我的程序的檢查開始,現在我的這一切測試程序的工作,我可以從服務器發送字符串,它會在客戶端上正常顯示,但是當我試圖if語句採用與字符串它是行不通的。例如:C#後,就可以閱讀,但不與正常工作,「如果」
public void rcv(NetworkStream ns, TcpClient clientSocket)
{
on = false;
//sending some random string so the server will respond
Byte[] sendBytes = Encoding.ASCII.GetBytes("bla");
ns.Write(sendBytes, 0, sendBytes.Length);
//receiving server response
byte[] bytes = new byte[clientSocket.ReceiveBufferSize];
int bytesread = clientSocket.ReceiveBufferSize;
ns.Read(bytes, 0, bytesread);
//received response, now encoding it to a string from a byte array
string returndata =Encoding.ASCII.GetString(bytes);
ver = Convert.ToString(returndata);
//MessageBox.Show("ver\n" + ver);
//MessageBox.Show("return\n" + returndata);
on = true;
if (ver== "2.0.1")
{
MessageBox.Show("iahsd");
}
}
因此,大家可以看到,使用該測試字符串IM是由服務器發送的是「2.0.1」確實不正常顯示一個標籤,一個消息框,我把一個文本框上進行測試。但是在課程末尾的if分支不接受它並跳過它,如果我放入一個else語句,它跳到那個。
我已經試過各種我和我的朋友們能想到的,試圖改變編碼,發送不同的字符串,等等。
客戶端的全碼: http://pastebin.com/bQPghvAH
實際上難以在if上加上斷點,並檢查ver變量中的值是什麼 – Steve
看到某些人對事物的看法總是很有趣。當'returndata'已經被定義爲一個'string'時,你認爲調用'Convert.ToString(returndata);'會做什麼? –
@Steve版本的值是正確的琴絃,在這種情況下,「2.0.1」,但它不工作.. 我前右如果早期版本 的值設置爲一個文本框|||||| \t \t \t \t Damien_The_Unbeliever老實說,我只是圍繞着最不可思議的東西,嘗試絕望到底,我知道,不作任何SENCE,但問題本身didnt任何意義,我要麼 – Alex