C# Windows Mobile Professional 6.1如何测试internet连接
我有一个WM 6.1 Prof.应用程序,可以在用户希望时检查更新 在尝试连接到服务器之前,我想检查是否有可用的连接(GPRS或Wifi) 我也在使用openNETCF.NET dll,这是我所做的,但不是每次都能用 我也不确定我应该使用哪种类型的连接,等等 好的,你觉得这样好吗 多谢各位C# Windows Mobile Professional 6.1如何测试internet连接,c#,windows-mobile,mobile,opennetcf,C#,Windows Mobile,Mobile,Opennetcf,我有一个WM 6.1 Prof.应用程序,可以在用户希望时检查更新 在尝试连接到服务器之前,我想检查是否有可用的连接(GPRS或Wifi) 我也在使用openNETCF.NET dll,这是我所做的,但不是每次都能用 我也不确定我应该使用哪种类型的连接,等等 好的,你觉得这样好吗 多谢各位 private static HttpWebRequest ConnectWeb(string urlx) { try { HttpWebRequest
private static HttpWebRequest ConnectWeb(string urlx)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(urlx));
request.ContentType = @"application/octet-stream";
request.Credentials = CredentialCache.DefaultCredentials;
request.Timeout(6000);
return request;
}
catch (Exception ex)
{
MessageBox.Show(Lang.CONNECTIONPROBLEM);
return null;
}
}
private bool downloadTest()
{
Stream stream;
HttpWebResponse response;
HttpWebRequest request = ConnectWeb(FileManager.url);
if (request!=null)
{
try
{
using (response = (HttpWebResponse)request.GetResponse())
{
using (stream = response.GetResponseStream())
{
byte[] data = ReadFully(stream, (int)response.ContentLength);
writeByteArrayToFile(data, "data.zip");
}
}
response.Close();
stream.Close();
}
catch (Exception ex)
{
MessageBox.Show(Lang.CONNECTIONPROBLEM);
return false;
}
}不要断开连接管理器的连接 使用Windows Mobile连接管理器后,网络堆栈(Autobind Winsock分层服务提供程序)的插件将开始自动将网络连接绑定到与所选目标相对应的网络接口。基本上,它强制数据包走正确的路。如果您请求断开连接,它可能根本不会发送它们 相反,您应该在尝试连接到更新服务器之前调用Connect,然后在完成连接后请求断开连接。如果希望在后台工作,请使用异步连接并附加到已连接的事件 要了解IE如何选择正确的目的地(WiFi或GPRS),请使用ConnectionManager.MapUrl确定目的地GUID,并将其传递到Connect。默认映射行为是:
- 如果URL的服务器名称部分没有点,则为工作地址
- 如果服务器名称部分出现在异常列表中,则它是一个工作地址
- 否则,它就是一个互联网地址
我记得,.NET CF的HttpWebRequest将根据IE映射目标的行为自动使用连接管理器,因此您可能根本不需要OpenNETCF类。不要断开连接管理器的连接 使用Windows Mobile连接管理器后,网络堆栈(Autobind Winsock分层服务提供程序)的插件将开始自动将网络连接绑定到与所选目标相对应的网络接口。基本上,它强制数据包走正确的路。如果您请求断开连接,它可能根本不会发送它们 相反,您应该在尝试连接到更新服务器之前调用Connect,然后在完成连接后请求断开连接。如果希望在后台工作,请使用异步连接并附加到已连接的事件 要了解IE如何选择正确的目的地(WiFi或GPRS),请使用ConnectionManager.MapUrl确定目的地GUID,并将其传递到Connect。默认映射行为是:
- 如果URL的服务器名称部分没有点,则为工作地址
- 如果服务器名称部分出现在异常列表中,则它是一个工作地址
- 否则,它就是一个互联网地址
我记得,.NET CF的HttpWebRequest将根据IE映射目的地的行为自动使用连接管理器,因此您可能根本不需要OpenNETCF类。感谢您的详细回答,我不会使用OpenNETCF,而是按照上面的方式编辑代码,谢谢你的长回答,我不打算使用opennetCF,而是按照上面的方式编辑代码,你可以检查是否可以抱歉,我如何标记为答案?对不起,我找不到那个选项,我怎么能把它标记为答案呢?我找不到那个选项