none
在 Mobil 上Tcp/Client 方法無法傳送訊號 RRS feed

  • 問題

  • 小弟是個新手,目前想要寫一隻程式在Mobile上將GPS的經緯度,透過Tcp/client的方式將資料傳送到Server端.
    利用模擬器搭配FateGPS可以順利的將資料傳送出去.
    但是將程式丟到Mobile上卻發生Exception,
    訊息內容: 由於找不到包含錯誤訊息的選擇性資源組件,因此無法顯示錯誤訊息。

    不知道為什麼...模擬器可以正常Run,在Mobile上卻無法Run.

    以下是傳送部份的程式碼:

                string Msg = "";
                Msg += position.Latitude + ";";
                Msg += position.Longitude + ";";
                Msg += u_id+";" ;
                try
                {
                    TcpClient client = new TcpClient();
                    Byte[] Send_data = System.Text.Encoding.ASCII.GetBytes(Msg);
                    client.Connect(serverIp, port);
                    NetworkStream stream = client.GetStream();
                    if (stream.CanWrite)
                    {
                        byte[] writeData = System.Text.Encoding.ASCII.GetBytes(Msg);

                        stream.Write(writeData, 0, writeData.Length);

                        Thread.Sleep(2000);
                        stream.Flush();
                        stream.Close();
                        client.Close();
                    }
                }
                catch (Exception ex)
                {
                    Mess.Text = ex.Message;
                }

    2009年3月9日 上午 09:45

解答

  • Server 140.xxx.xxx.xxx 看起來是對外的IP,是嗎?幾個部分可以確認看看

    1. 無線AP是不是有防火牆之類的功能?有的話關掉測試看看
    2. 用其他的設備,例如NB,連上你的AP之後測試一下,看看是不是網路的問題
    態度決定一切 ! - blog : http://bauann-makeit.blogspot.com/
    • 已標示為解答 S.H.C. _ 2009年3月13日 上午 06:09
    2009年3月12日 下午 12:42
    版主

所有回覆

  • Hi,
    你可以寫個簡單的程式去測試一下網路環境是不是正常,部屬到實機上面之後就可能是用無線網路的方式去連線了,那麼無線網路能不能順利連接到Server上,這個要確認一下。
    態度決定一切 ! - blog : http://bauann-makeit.blogspot.com/
    2009年3月11日 上午 08:35
    版主
  • Hi. 我將SDK的Gps範例修改以後,將程式放到實體Gps手機上去測試的時候,裝置透過ACTIVESYNC 4.5連接到電腦時,可以成功的將訊息傳送到Server端。
    但是轉到自己的ap所提供的WiFi無線網路~手機可以正常上網瀏覽網頁,程式卻無法透過TcpClient client = new TcpClient();來建立一個新連線,不知道有線網路跟無線網路的寫法是不是不同?
    2009年3月11日 下午 05:14
  • Hi,
    我上一篇的意思是指要先確定一下網路環境,比如說你的Server IP是 192.168.1.100,無線網路分配給Device的IP可能是192.168.2.123,那麼雖然可以正常連上Internet,但是可能無法連線到Server,這部分環境的部分要先確認好。
    態度決定一切 ! - blog : http://bauann-makeit.blogspot.com/
    2009年3月12日 上午 02:10
    版主
  • Hi,我看可能是網路環境有點問題. 在無線網路環境測試時所得到的訊息是: SocketException連線嘗試失敗,因為連線對象有一段時間並未正確回應或連線建立失敗,因為連線的主機無法回應.
    可是我不太知曉怎麼去測試網路環境. 我的server 並不是在ap下 , 是有一個固定IP ex: 140.xxx.xxx.xxx , 另外有一個固定IP給AP使用 , 然後AP分配給Device的無線網路IP就如您所提到的是192.168.0.105.
    在實作時~是要Device要透過ap的無線網路連上Server,會是AP上要更改設定嗎 ? 還是有其他因素? 第一次架設無線網路環境,以為只要把AP開啟讓其他Device可以正常連線、瀏覽Internet就可以正常運作了~沒想到會出現問題.
    2009年3月12日 下午 12:28
  • Server 140.xxx.xxx.xxx 看起來是對外的IP,是嗎?幾個部分可以確認看看

    1. 無線AP是不是有防火牆之類的功能?有的話關掉測試看看
    2. 用其他的設備,例如NB,連上你的AP之後測試一下,看看是不是網路的問題
    態度決定一切 ! - blog : http://bauann-makeit.blogspot.com/
    • 已標示為解答 S.H.C. _ 2009年3月13日 上午 06:09
    2009年3月12日 下午 12:42
    版主
  • Hi,
    我今天把整個網路環境又重新測試了一次,發現有人佔用我給ap使用的實體ip,導致網路發生了一些問題.
    更換一個新IP之後,資料已經可以傳輸了.
    如果沒有你的幫忙~我可能還沒注意到被人占用IP的問題.
    謝謝您撥空幫我解答問題.

    2009年3月13日 上午 06:12