【转】Windows Mobile中如何建立GPRS连接以便Socket能正常通信

Windows Mobile C# GPRS连接源码实现指南 本文还有配套的精品资源,点击获取 简介:本文深入探讨了在Windows Mobile平台上使用C#语言实现GPRS连接的源码。首先介绍GPRS及其在Windows Mobile平台的应用背景,然后详细说明.NET Compact Framework和CF网络类库在C#程序中的使用。接下来,文章逐步讲解了进行GPRS连接的初始化、Socket连接创建、服务器连接和数据传输等关... 阅读详情

原文:http://www.vckbase.com/document/viewdoc/?id=1803

 最近编写一个医疗项目的程序,需要用 Windows Mobile 来做通信处理,需要将手机端的数据通过GPRS传送至公网上的一个服务器上。数据传输我采用的是socket,用数据线+ActiveSync调试通过,数据传输正常,在准备将软件提交给质检部门的时候,用真正的GPRS来做通信测试时,问题出来了,连接始终建立不了,但用手机的IE浏览器却能正常打开网页,而且奇怪的是只要用IE浏览器成功访问过一次网页,我的 socket 就能正常进行数据通信,看来传说中的GPRS常连接被我误解了。
  手机开通GPRS以后,我们的socket 程序还不能直接建立网络连接,需要用连接管理器来获取当前可用连接,并自动选择一个最佳的连接途径,然后启用这个连接,在连接启动成功以后再用socket 进行网络连接方可正常进行。大概GPRS拨号和连接过程就是在这里自动进行的吧。源代码中封装了一个连接管理的类和测试代码,可以清楚地看到Windows Mobile 在socket 编程之前到底需要做什么样的操作。
  首先需要枚举当前可用的连接
void CConnectManager::EnumNetIdentifier ( OUT CStringArray &StrAry )
{
  CONNMGR_DESTINATION_INFO networkDestInfo = {0};
  // 得到网络列表
  for ( DWORD dwEnumIndex=0; ; dwEnumIndex++ )
  {
    memset ( &networkDestInfo, 0, sizeof(CONNMGR_DESTINATION_INFO) );
    if ( ConnMgrEnumDestinations ( dwEnumIndex, &networkDestInfo ) == E_FAIL )
    {
      break;
    }
    StrAry.Add ( networkDestInfo.szDescription );
  }
}
接下来找到“Internet”这个连接,可用远程URL映射的方式来完成,这样可以让系统自动选取一个最好的连接。int CConnectManager::MapURLAndGUID ( LPCTSTR lpszURL, OUT GUID &guidNetworkObject, OUT CString *pcsDesc/*=NULL*/ )
{
  if ( !lpszURL || lstrlen(lpszURL) < 1 )
    return FALSE;
  memset ( &guidNetworkObject, 0, sizeof(GUID) );
  int nIndex = 0;
  HRESULT hResult = ConnMgrMapURL ( lpszURL, &guidNetworkObject, (DWORD*)&nIndex );
  if ( FAILED(hResult) )
  {
    nIndex = -1;
    DWORD dwLastError = GetLastError ();
    AfxMessageBox ( _T("Could not map a request to a network identifier") );
  }
  else
  {
    if ( pcsDesc )
    {
      CONNMGR_DESTINATION_INFO DestInfo = {0};
      if ( SUCCEEDED(ConnMgrEnumDestinations(nIndex, &DestInfo)) )
      {
        *pcsDesc = DestInfo.szDescription;
      }
    }
  }
  return nIndex;
}
以下代码是用来启用指定编号的连接BOOL CConnectManager::EstablishConnection ( DWORD dwIndex )
{
  ReleaseConnection ();
  // 得到正确的连接信息
  CONNMGR_DESTINATION_INFO DestInfo = {0};
  HRESULT hResult = ConnMgrEnumDestinations(dwIndex, &DestInfo);
  BOOL bRet = FALSE;
  if(SUCCEEDED(hResult))
  {
    // 初始化连接结构
    CONNMGR_CONNECTIONINFO ConnInfo;
    ZeroMemory(&ConnInfo, sizeof(ConnInfo));
    ConnInfo.cbSize = sizeof(ConnInfo);
    ConnInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
    ConnInfo.dwFlags = CONNMGR_FLAG_PROXY_HTTP |
        CONNMGR_FLAG_PROXY_WAP |
        CONNMGR_FLAG_PROXY_SOCKS4 |
        CONNMGR_FLAG_PROXY_SOCKS5;
    ConnInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
    ConnInfo.guidDestNet = DestInfo.guid;
    ConnInfo.bExclusive  = FALSE;
    ConnInfo.bDisabled = FALSE;
    DWORD dwStatus = 0;
    hResult = ConnMgrEstablishConnectionSync(&ConnInfo, &m_hConnection, 10*1000, &dwStatus );
    if(FAILED(hResult))
    {
      m_hConnection = NULL;
    }
    else bRet = TRUE;
  }
  return bRet;
}
  为了确保连接是否真正可用,需要检测连接状态,在规定的时间内如果未取得“连接成功”的状态,则认为连接未能正常启用,可能需要配置手机的连接管理器界面BOOL CConnectManager::WaitForConnected ( int nTimeoutSec, DWORD *pdwStatus/*=NULL*/ )
{
  DWORD dwStartTime = GetTickCount ();
  BOOL bRet = FALSE;
  while ( GetTickCount ()-dwStartTime < (DWORD)nTimeoutSec * 1000 )
  {
    if ( m_hConnection )
    {
      DWORD dwStatus = 0;
      HRESULT hr = ConnMgrConnectionStatus ( m_hConnection, &dwStatus );
      if ( pdwStatus ) *pdwStatus = dwStatus;
      if ( SUCCEEDED(hr) )
      {
        if ( dwStatus == CONNMGR_STATUS_CONNECTED )
        {
          bRet = TRUE;
          break;
        }
      }
    }
    Sleep ( 100 );
  }
  return bRet;
}
  至此,我们的连接启用工作已经做完了,我们可以用我们熟悉的 socket 来编写网络通信程序了。下面是一个测试 socket 测试网络连接是否能正常建立的例子:SetWaitCursor ();
CSocket sock;
sock.Create ();
if ( sock.Connect ( _T("www.baidu.com"), 80 ) )
{
  RestoreCursor ();
  AfxMessageBox ( _T("Connect to www.baidu.com successfully"), MB_ICONINFORMATION );
}
else
{
  RestoreCursor ();
  AfxMessageBox ( _T("Connect to www.baidu.com failed") );
}



  GPRSDemo.exe 的使用
  程序启动以后出现如下界面:
  连接可用性 – 检测连接管理器是否可用
  映射URL – 是让系统自动寻找一个最好的连接
  枚举网络标识符 – 将当前系统中所有可用的连接都会被枚举出来
  连接网络 – 将枚举出来的连接选中的那个连接进行连接启用操作。
  连接状态 – 表示可以获取到当前连接的状态;
  连接到公网测试 – 利用 www.baidu.com 来测试连接是否已经正常启动。
  操作步骤:
  可以直接按“枚举网络标识符”,程序将所有当前在用的网络枚举出来并添加到 ListBox 控件中;
  连接网络。选择一个连接(例如:Internet),按“连接网络”按钮,当提示 Connection net successfully 表示连接已经正常启用了。
  按“连接到公网测试”按钮,软件自动和 www.baidu.com 进行连接测试。

 

UE5实战技巧:TextRender高效集成中文字体与材质优化 本文针对UE5中TextRender组件显示中文的常见问题,提供了一套完整的实战解决方案。详细讲解了如何通过手动创建字体资产、精准控制字符集来优化性能,并重点介绍了通过调整材质中的Lerp节点参数(如设为-85, 92)来解决中文字体显示残缺和边缘模糊等核心难题,帮助开发者实现高效且美观的中文文本渲染。 阅读详情

相关推荐

EBS开发_离散工单创建API

--以下代码于20171213在TONY环境中实现 DECLARE     l_iface_rec    wip.wip_job_schedule_interface%ROWTYPE; --工单任务接口表     l_group_id     NUMBER;     l_returnstatus VARCHAR2(40);     l_errormsg     VARCHAR2(2000

蜗牛先生快跑的博客 2596

Windows Mobile中如何建立GPRS连接以便Socket能正常通信

Windows Mobile中如何建立GPRS连接以便Socket能正常通信【版   本】1.0.0【操作系统】Windows Mobile 5.0【作   者】谢红伟·chrys ·chrys@163.com · http://www.viction.net【开发公司】深圳市伟信科技开发有限公司【开发日期】2007-12-11 01:23:56

谢红伟的专栏 3305

百度无人车ApolloAuto使用入门

1.安装原版ubuntu 14.04 http://www.ubuntu.org.cn/download/alternative-downloads 2.安装对应ubuntu 14.04的indigo版ROS http://wiki.ros.org/indigo/Installation/Ubuntu 3.安装Apollo Kernel https://github.co

ss910的博客 3万+

Windows Mobile 下使用C#进行GPRS、CDMA开发- Visual Studio.NET

 最近编写一个医疗项目的程序,需要用 Windows Mobile 来做通信处理,需要将手机端的数据通过GPRS传送至公网上的一个服务器上。数据传输我采用的是socket,用数据线+ActiveSync调试通过,数据传输正常,在准备将软件提交给质检部门的时候,用真正的GPRS来做通信测试时,问题出来了,连接始终建立不了,但用手机的IE浏览器却能正常打开网页,而且奇怪的是只要用IE浏览器成功访问过一

ssihc的专栏 1746

扫地机器人:从仿真到决策,一个完整SLAM导航系统的自研之路

本文详细记录了从零开始自研扫地机器人SLAM导航系统的全过程,涵盖ROS-Gazebo仿真系统搭建、地图预处理优化、全覆盖规划算法迭代等关键技术。通过三次算法升级,最终实现92%的清洁效率,并分享DWA调参、状态机设计等实战经验,为开发者提供从仿真到落地的完整解决方案。

weixin_29053695的博客 352

手把手教你用RMII接口配置以太网PHY芯片(附YT8512实战代码)

本文详细介绍了如何使用RMII接口配置以太网PHY芯片,以国产YT8512为例,提供从硬件设计到软件驱动的全流程实战指南。内容包括RMII接口技术解析、YT8512硬件设计要点、驱动开发实战代码及常见问题排查,帮助开发者快速实现以太网通信功能。

mac99的博客 994

Windows Mobile中如何建立GPRS连接以便Socket能正常通信 收藏

<br />Windows Mobile中如何建立GPRS连接以便Socket能正常通信 收藏 <br /> <br />内容摘要:数据传输我采用的是socket,用数据线+ActiveSync调试通过,数据传输正常,在准备将软件提交给质检部门的时候,用真正的GPRS来做通信测试时,问题出来了,连接始终建立不了,但用手机的IE浏览器却能正常打开网页,而且奇怪的是只要用IE浏览器成功访问过一次网页,我的 socket 就能正常进行数据通信,看来传说中的GPRS常连接被我误解了 <br />  本文示例源代码或

458

IPSec案例部署

步骤二:按照规划划分vlan并开启vlanif接口,配置链路类型实现vlan之间的互通。步骤2 :配置OSPF实现公司内部通信,配置静态路由实现AR1和AR3路由可达。3. 配置IPSec的安全联盟(协商业务数据加密时使用的参数)下发缺省路由,使网关设备有去往对端的路由‘配置对等体IP地址,即分公司的出口IP。步骤1:设备重命名以及IP地址的配置。步骤4:配置NAT,实现内网访问外网。步骤3:配置IPSec VPN。5.调用IPSec的安全策略。发了5个包 加密5个包。

2301_76769137的博客 1693

windows mobile建立gprs的socket通信

 最近编写一个医疗项目的程序,需要用 Windows Mobile 来做通信处理,需要将手机端的数据通过GPRS传送至公网上的一个服务器上。数据传输我采用的是socket,用数据线+ActiveSync调试通过,数据传输正常,在准备将软件提交给质检部门的时候,用真正的GPRS来做通信测试时,问题出来了,连接始终建立不了,但用手机的IE浏览器却能正常打开网页,而且奇怪的是只要用IE浏览器成功访问过一次网页,我的 socket 就能正常进行数据通信,看来传说中的GPRS常连接被我误解了。  手机开通GPRS以后

biaoge226387282的专栏 650

14、Java 中 TAF 和 FCF 的使用及 Oracle 数据库升级与迁移指南

本文详细介绍了Java中实现高可用性的TAF(透明应用故障转移)和FCF(快速连接故障转移)技术,以及如何将Oracle 9iR2 RAC环境升级到10gR2 RAC,并将数据从OCFS迁移到ASM。通过示例代码和操作步骤,帮助开发者和数据库管理员更好地应对数据库故障和数据迁移问题,提升系统的可用性和性能。

egg99的博客 107

基于STM32的智能手环心率血氧体温监测系统(完整设计)

本文设计了一款基于STM32单片机的多功能智能手环系统,集成心率、血氧、体温实时监测功能,并支持运动数据管理与健康预警。系统采用MAX30102传感器实现心率血氧监测,DS18B20检测体温,ADXL345进行步数统计,通过OLED屏幕显示数据。研究通过低功耗硬件选型与模块化软件架构设计,实现了多参数同步采集、阈值预警及蓝牙数据传输功能。测试结果表明,系统在健康监测精度、续航能力及用户交互体验上均达到预期目标,为个人健康管理提供了实用解决方案。

3254968421的博客 701

Windows Mobile中如何建立GPRS连接以便Socket能正常通信(转帖)

手机开通GPRS以后,我们的socket 程序还不能直接建立网络连接,需要用连接管理器来获取当前可用连接,并自动选择一个最佳的连接途径,然后启用这个连接,在连接启动成功以后再用socket 进行网络连接方可正常进行。大概GPRS拨号和连接过程就是在这里自动进行的吧。源代码中封装了一个连接管理的类和测试代码,可以清楚地看到Windows Mobile 在s

andykiteelxu的专栏 445

RK3568平台开发系列讲解(音频篇)配置声卡

📢本篇文章介绍如何配置声卡。

内核笔记 2448

确保Windows Mobile通过GPRS连接CMNET成功的办法(附源码)

【版   本】1.0.0【操作系统】Windows Mobile 6.1【作   者】谢红伟·chrys ·chrys@163.com ·http://callgle.xicp.net【开发日期】2010-04-02 1:24【文档日期】2010-04-02 3:53【说明】用连接管理器API可以对Windows Mobile的GPRS连接进行管理,由程

谢红伟的专栏 3065

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Windows Mobile 下使用C#进行GPRS、CDMA开发

有关GPRS、CDMA开发的文章网上已经有不少,但是由于WindowsMobile SDK提供的GPRS、CDMA连接操作的库只有C++版本的(即Connection ManagerAPI),网上的文章大多数都是C++版本的,尽管也有C#编写的但是大多封装的有些不对并且没有经过很好的测试,本文在网络已有的资料上整理出如何用C#进行GPRS、CDMA开发。 参考文献: Windows M

sx811125的专栏 800

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

GPRS开发系列文章之进阶篇(Windows Mobile)

<br /><br />1. 客户端建立GPRS连接 API<br />      主要讲解的类库为Connection Manager 系列API,客户端在进行GPRS拨号连接时将使用下文所介绍的API。<br />      Connection Manager(本人译为 连接管理器,此对象为一系列API的集合) 系列API的主要目的是为了集中管理基于Windows Mobile系列的设备网络连接的建立与维护。移动应用程序使用 连接管理器API去建立或规划一个网络连接,而连接管理器则掌控连接过程中的所有

狂奔的蜗牛专栏 1150

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Windows Mobile Gprs连接与数据传输

此模块分两部分完成,传输数据用socket,要使用socket在ppc上进行数据传输,就要谁让ppc自动连接gprs。其中套接字和gprs链接分别进行说明。 一,应用程序在进行其它所需的WindowsSocketsAPI调用需要进行一次成功的WSAStartup()调用,然后就是套接字编程。分为服务器端和客户端。 服务器: 先建立套接字...

weixin_33966365的博客 155

《Windows Mobile中如何建立GPRS连接以便socket能正常通信》

http://blog.chinaunix.net/u1/59687/showart_474598.html 

tjuac的专栏 471

GPRS开发系列文章之进阶篇【转】

在前篇《GPRS开发系列文章之入门篇》里,我主要对GPRS开发中遇到的一些常用概念和一些业务逻辑做了简单的介绍,没想到得到了很多网友的支持和关注,因昨天有事因此延迟到今天才奉上这篇进阶系列文章,还请各位见谅。希望大家支持同时欢迎拍砖,共同提高。在最后一篇《GPRS开发系列文章之实战篇》我将详细叙述如何利用类库开发Client和Server端通信程序,因此本文的多数讲解将是为下文服务的。本文

soulforcemw的专栏 549

【转】GPRS开发系列文章之进阶篇

GPRS开发系列文章之进阶篇 GPRS开发系列文章之进阶篇相关文章:GPRS开发系列文章之入门篇         GPRS开发系列文章之实战篇 一、前言在前篇《GPRS开发系列文章之入门篇》里,我主要对GPRS开发中遇到的一些常用概念和一些业务逻辑做了

code09的专栏 549

GPRS开发系列文章之进阶篇

一、前言在前篇《GPRS开发系列文章之入门篇》里,我主要对GPRS开发中遇到的一些常用概念和一些业务逻辑做了简单的介绍,没想到得到了很多网友的支持和关注,因昨天有事因此延迟到今天才奉上这篇进阶系列文章,还请各位见谅。希望大家支持同时欢迎拍砖,共同提高。在最后一篇《GPRS开发系列文章之实战篇》我将详细叙述如何利用类库开发Client和Server端通信程序,因此本文的多数讲解将是为下文服务

458
上一篇: 使用fwrite,fread需要注意的问题
下一篇: 【转】Winsock开发网络通信程序的经典入门
code09
博客等级 码龄18年 31粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值