目的:PDA用C#获得GPS信息,发送给服务器。
网上找的相关代码(http://www.wangchao.net.cn/bbsdetail_73074.html),可以获得gps数据。
但是发送给服务器的时候在NetworkStream.write这句时呈死机状态,发送不了,服务器端也没有接收到信息的反应,也没有错误提示,直到PDA端断开时服务器才显示接收到了空数据,提示“远程主机强迫关闭了一个现有的连接”之类的(说到这里,之前在网上查到将传输部分的代码写在try,catch块中就不会提示这个错误,我写进去了,但这个时候还是会提示)。
但是PDA与服务器的传输本来是没问题的,因为直接发送给定的数据到服务器是可以顺利通信的。
所以接收gps信息与跟服务器通信,这两者之间有问题?

解决方案 »

  1.   

    不知道你是怎么写的  我最近写的一个wince5.0条码采集器上也有和服务器通信的,是用webservice做的。
      

  2.   

    哦~~
    我觉得我的不是通信的问题呢,因为可以发送其它的数据,却发不了gps数据,messagebox过 gps数据应该是对的。
      

  3.   

    messagebox看的数据格式应该也是正确的,而且如果格式有问题应该会有提示的吧~
      

  4.   

    按你说的情况gps数据获取是没问题,主要是通信过程出问题,你先看下数据发送到哪一步停止了,按你说的情况很有可能是连接没有建好,TCP连接握手没成立。具体把try catch异常贴出来看看吧。
      

  5.   

    如果是gps数据获到发送之间通信问题,很有可能是格式问题,同步看下吧
      

  6.   

    如果是try catch问题 那其它数据应该也发不了吧
    try
                {
                    Client = new TcpClient(host, port);//主机IP和端口号
                      if (Client != null)
                        {
                            NetworkStream sendStream; 
                            sendStream=Client.GetStream();
                            //获得的gps信息
                            double x = getLongitude();
                            double y = getLatitude();
                            string Speed = getSpeed();
                            string Time = getTime();
                            string sendData="Longitude=" + x.ToString() + ";" + "Latitude=" + y.ToString() + ";"+"Speed=" + Speed.ToString() + ";" + "Time=" + Time.ToString();
                            MessageBox.Show(sendData);
                            Byte[] data = System.Text.Encoding.ASCII.GetBytes(sendData);  
                            sendStream.Write(data, 0, data.Length);
                            sendStream.Close();
                            Client.Close();
                            sendData = null;
                       }
                }
          catch(Exception e)
                    {
                        MessageBox.Show(e.Message+"...a");
                    }
      

  7.   

    找到问题了,发送数据时先把gps关掉就可以发送了 
    可是总不能一直打开关闭gps吧,它每次进入正常工作状态也是需要时间的啊,这样怎么能够保证每隔n秒发送数据给服务器呢
    gps跟通信不能同时工作吗?
      

  8.   

    考虑到是不是端口冲突,可是之前用一个现成的gps接收控件可以接收数据并与服务器正常通信,现在自己写的这个与之前那个是同样的端口号,所以又不是端口冲突的问题?那怎么回事呢?
      

  9.   

    占个位置来学习。我只会用webservice