c# - 使用GPRS的WM6 socket

标签 c# sockets windows-mobile network-programming gprs

我正在WM6上的NTRIP客户端上写东西。基本上,我是通过首先发送配置从使用套接字的服务器获取数据的。但是我无法通过同一设备上的GPRS连接使它正常工作。

我发送此消息。

Get / HTTP/1.0
User-Agent: NTRIP client
Accept: */*
Connection: close

到此服务器。
Hostname: mamba.gps.caltech.edu
Port: 2101

我这样做来建立连接
string message = "GET / HTTP/1.0\r\nUser-Agent: NTRIP client\r\nAccept: */*\r\nConnection: close\r\n\r\n"
IPAddress ipAddress = Dns.GetHostEntry(hostname).AddressList[0];

_NTRIPCaster = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_NTRIPCaster.Connect(new IPEndPoint(ipAddress, Convert.ToInt32(port)));
_NTRIPCaster.Send(Encoding.ASCII.GetBytes(message));
for (int i = 0; i < 50; i++) //Wait for upto 5 seconds for a response
{
     Thread.Sleep(100);
     if (_NTRIPCaster.Available > 0)
     {
           Byte[] inBytes = new byte[_NTRIPCaster.Available];
           _NTRIPCaster.Receive(inBytes);
           sourceTable += Encoding.ASCII.GetString(inBytes, 0, inBytes.Length);
           //Check if all of the Source table has been recieved
           if (sourceTable.Contains("ENDSOURCETABLE")) 
           {
                 sourceTableRecieved = true;
                 break;
           }
      }
}

如果我有Wi-Fi连接,或者设备已对接至PC,并且 Activity 同步正在共享PC的Internet连接,则所有这些都可以正常工作。

如果我切断了PC上的Internet并禁用了Wi-Fi,则其无法将主机名解析为IP地址。甚至都没有进入套接字连接。基本上,它不使用设备中的调制解调器,而是使用GPRS连接。无论是否连接GPRS,都会发生这种情况。

由于我使用的是WM6,因此我研究了连接管理器API-http://msdn.microsoft.com/en-us/library/aa458120

但是在关注了其他几篇文章之后,我已经能够在stackoverflow和其他论坛上找到我无法使它工作的功能。有谁知道我如何建立GPRS连接并开始向服务器发送数据。

最佳答案

如果使用更高级别的网络对象(例如HttpRequest),则.NET Framework将自动调用连接管理器API。您使用低级套接字是有原因的吗?

关于c# - 使用GPRS的WM6 socket ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7110816/

相关文章:

c# - Tuple<X1,X2..>.Create 和 new Tuple<X1,X2..> 之间的优点/缺点是什么

c# - 缺少一些自动生成的控件

Java - 向整个网络发送UDP广播,但不向自身发送

c# - .NET CompactFramework TextBox.selectAll on gotFocus

c# - 从 webapi2 Controller 返回 403

c# - 使用换行符将文本转储到文件

c++ - 将 UDP 数据包发送到同一地址的效率

c++ - 是否可以将 TCP 数据包发送到 UDP-only 服务器?

c# - 有什么方法可以更改 .NET Compact Framework 2.0 上的输入法

windows-mobile - Motorola MC3190 条码扫描仪未触发