gprs上网首先要设置pdp,接着bai建立ppp连接,ppp连接建立后,就可以进行tcp/ip传输了, 要进行tcp/ip数据传输,很多时候都采用socket. PDP:是GPRS连接的软硬件环境,指定GPRS连接的接入点APN,连接类型IP或PPP,还有其他一些可选项; PPP:终端和MODEM之间点对点的协议,包括终端于MODEM之间的链路层协商(LCP),服务器对终端的认证(PAP或CHAP,这一步非强制), 以及终端与服务器的网络层协商(基本都是IPCP); SOCKET:进程之间的通信方式,手机上的应用程序(客户进程)要和服务器的某个服务进程通信,就用socket通过邦定的TCP或UDP端口基于IP 进行数据传输 再补充一下: PPP协商过程中的IPCP配置中,终端通过MODEM请求激活PDP上下文获得IP地址完成网络连接,PDP中设置的APN就是终端所在的这个网络的网 关,终端访问internet时就得通过这个网关; 而终端的客户进程与服务器的服务进程进行socket通信时,就基于这个IP地址。 据我所知道的:从网络侧来看,PPP连接最重要的一步是获取IP地址,这个IP由GGSN分配,GGSN是GPRS网到internet的网关,GSM和 WCDMA协议规定一个MODEM可以和多个GGSN建立PDP上下文,不知道你所说的服务器是否指GGSN。 而socket连接的服务器和GGSN完全 是两码事,socket连接的是internet网络中的服务器,socket是用于进程间通信的,它将进程与TCP/UDP端口进行绑顶,一个 client端的socket只能连接一个server socket。也就决定了它只能连接一台服务器。 当然,写应用的时候必须注意两件事:1、GPRS是否可用。如果当前GPRS根本就无法连接,你开socket是毫无意义的; 2、拥塞控制。GPRS速度其实并不高,用惯了宽带网的小朋 从理论上来说,如果你的平台上的TCP/IP足够完整,你根 本不需要考虑GPRS的内容,只需要根据TCP/IP协议栈上的接口就完全可以控制应用程序的调度和流控了。通常的平台上,TCP/IP协议栈都是赛 扬版的,所以应用程序经常还需要去读取GPRS状态。 如果你写的是GPRS协议栈,关心到PDP就可以为止了。 如果手机的GPRS没有长时间掉线,就不会变化。PDP就是处理这件事的。PDP的作用相当于维持一根看不见的网线,不管你走到哪儿都保证你IP地址不 PPP是发生在PDP和TCP/IP之间的。这里引入PPP基于两个历史渊源: /IP当然可以覆盖在PDP之上,但这几乎就是重写TCP/IP了。而更早的时候已经有以PPP为底层的TCP/IP了。PPP的移植又比TCP/IP的 移植要简单得多。于是就有人先把PPP移植到PDP上,然后再在上面盖一层TCP/IP。PPP其实就是一个DL(数据链路层)的变异体; 2、(实际上这 个才是真正的最主要的渊源),最开始的处理器能力都不够,跑GPRS之后,根本不可能再跑TCP/IP协议栈和应用,GPRS充当modem,TCP

【转至于https://zhidao.baidu.com/question/1817865523741769388.html】