如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
基于socket的网络编程天翼博路技术部2009.2主要内容{BREW所支持的socket编程{UDPsocket编程{TCPsocket编程BREW中的socket编程BREWTMDeveloperTraining特点{非阻塞异步通信模式-基于回调函数的通知方式{支持TCP和UDPzC网手机至少同时支持3个TCP,4个UDP{BREW提供的通用APIzINetMgrzISocketINetMgr{INetMgr对象的创建zISHELL_CreateInstance(piShell,AEECLSID_NET,&piNet){网络属性zPPPstate(OPEN,ASLEEP,CLOSED)zSingleIPv4address{所有操作完成以后释放INetMgr的函数{OpenSocket()z–CreatesaSTREAMorDGRAMISocket{GetHostByName()z–NameService(resolver)zRetrieves“A”recordviaIDNSzCachesresultsforperformance{NetStatus()z–Retrieveinstantaneousnetworkstate{OnEvent()z–RegistercallbackforasynchronousnetworkstatechangesINetMgr的函数{GetMyIPAddr()z–LocalIPaddress{ZeroifPPPdown{SetLinger()z–Lingertimer{Defaultsto30seconds{MaxofallINetMgrinstances{ClosePPPlingersecondsafterlastsocketactivity{SetOpt()/GetOpt()z–GenericControl{RLP3settings{PPPcredentials{DNSserversISocket接口{支持IPv4socketz–STREAMorDGRAM{INetMgr管理网络行为z–OpensPPPonlywhenneededz–LocalIPaddressneededforBind(),Connect(),orSendTo(){Loopback支持z–INADDR_BREW_LOOPBACKz–INADDR_LOOPBACKISocket的函数{Bind()/GetSockName()z–Request/retrievelocalsocketaddress{Listen()/Accept()z–TCPserversockets{Connect(),GetPeerName()z–Request,retrieveremoteTCPsocketaddress{Read(),ReadV(),Write(),WriteV()z–TCPdatastream{•Shutdown(),Close()z–GracefulTCPterminationISocket的函数{SendTo(),RecvFrom()z–UDPdatagrams{GetLastError()z–Specificerrorcodeoflastoperation(e.g.ECONNRESET){Readable(),Writeable(),Cancel()z–Non-blockingI/O{SetOpt()/GetOpt()z–Socketoptions(TCPkeep-alive,receivebuffersize,etc.){IOCtl()z–Genericcontrol,extensionsBREWUDPsocket编程BREWTMDeveloperTraining创建与释放{CreationISocket*mySocket;mySocket=INETMGR_OpenSocket(pMe->pINetMgr,AEE_SOCK_DGRAM);if(!mySocket){DBGPRINTF(“Errorvalue:%x”,INETMGR_GetLastError(pMe->pINetMgr));}{Releaseif(mySocket){ISOCKET_Release(mySocket);mySocket=NULL;}数据报的发送准备ISOCKET_SendTo(ISocket*pISocket,byte*pBuff,uint16wBytes,uint16wflags,