一段TCP连接客户端所用的代码如下:
string str1 = "";TcpClient client = new TcpClient();
            
            try
            {
                client.Connect("127.0.0.1", 1245);      // 与服务器连接
            }
            catch (Exception ex)
            {
                textbox = textbox + ex.Message;
                return;
            }
NetworkStream ns = client.GetStream();
            byte[] bytes = new byte[1024];//建立缓冲区
            int bytesRead = ns.Read(bytes, 0, bytes.Length);//读取字节流
            
str1 = Encoding.ASCII.GetString(bytes, 0, bytesRead);
客户端连接上服务器端,如果连接上可以接受到服务器端发过来的数据,
请问我如何判断接收到的数据“Encoding.ASCII.GetString(bytes, 0, bytesRead)”中包含“0”还是“1”,如果包含“0”就回复发送一个“A”,如果包含“1”就回复发送一个“B”呢?

解决方案 »

  1.   

    Encoding.ASCII.GetString=String
    if(String.contains("0"))
        Send("A");
    else if(String.contains("1"))
        Send("B");
    Send改成自己的發送函式﹗
      

  2.   

    这里用if的话不会有问题吗?因为如果服务器端发过来的数据很久没过来,if会执行吗?
      

  3.   

    "因为如果服务器端发过来的数据很久没过来"
    那麼你的
    str1 = Encoding.ASCII.GetString(bytes, 0, bytesRead);
    永遠是空值,且也不會執行,那你後面不管用if, switch, while....,有那一個會執行?那你一開始應該問,如何讓數據一定會執行傳送跟接收吧?而你問的是
    str1 = Encoding.ASCII.GetString(bytes, 0, bytesRead);
    "中包含“0”还是“1”,如果包含“0”就回复发送一个“A”,如果包含“1”就回复发送一个“B”呢?"
    那我當然回覆你後面的東西﹗