目的:PDA用C#获得GPS信息,发送给服务器。
网上找的相关代码(http://www.wangchao.net.cn/bbsdetail_73074.html),可以获得gps数据。
但是发送给服务器的时候在NetworkStream.write这句时呈死机状态,发送不了,服务器端也没有接收到信息的反应,也没有错误提示,直到PDA端断开时服务器才显示接收到了空数据,提示“远程主机强迫关闭了一个现有的连接”之类的(说到这里,之前在网上查到将传输部分的代码写在try,catch块中就不会提示这个错误,我写进去了,但这个时候还是会提示)。
但是PDA与服务器的传输本来是没问题的,因为直接发送给定的数据到服务器是可以顺利通信的。
所以接收gps信息与跟服务器通信,这两者之间有问题?
网上找的相关代码(http://www.wangchao.net.cn/bbsdetail_73074.html),可以获得gps数据。
但是发送给服务器的时候在NetworkStream.write这句时呈死机状态,发送不了,服务器端也没有接收到信息的反应,也没有错误提示,直到PDA端断开时服务器才显示接收到了空数据,提示“远程主机强迫关闭了一个现有的连接”之类的(说到这里,之前在网上查到将传输部分的代码写在try,catch块中就不会提示这个错误,我写进去了,但这个时候还是会提示)。
但是PDA与服务器的传输本来是没问题的,因为直接发送给定的数据到服务器是可以顺利通信的。
所以接收gps信息与跟服务器通信,这两者之间有问题?
我觉得我的不是通信的问题呢,因为可以发送其它的数据,却发不了gps数据,messagebox过 gps数据应该是对的。
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");
}
可是总不能一直打开关闭gps吧,它每次进入正常工作状态也是需要时间的啊,这样怎么能够保证每隔n秒发送数据给服务器呢
gps跟通信不能同时工作吗?