Socket模拟Http连接之初识Socket

Socket模拟Http连接之初识Socket

ID:40569255

大小:39.00 KB

页数:6页

时间:2019-08-04

Socket模拟Http连接之初识Socket_第1页
Socket模拟Http连接之初识Socket_第2页
Socket模拟Http连接之初识Socket_第3页
Socket模拟Http连接之初识Socket_第4页
Socket模拟Http连接之初识Socket_第5页
资源描述:

《Socket模拟Http连接之初识Socket》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Socket模拟Http连接之初识Socket在Symbian上使用Socket需要库的支持,即你需要引入头文件es_sock.h和esock.lib库,准备一个活动对象类,比如classSocketConnection:publicCActive(1)声明RSocketServiSocketServ;它是用来连接Symbian系统中Soket服务的类,并不是我们一般意义上的SocketServer,在Symbian中实现类似于Java中SocketServer功能的类实际上是RSocket。(2)连接系统的Socket服务,即,iSocket.Connect();(3)声明RSocket对

2、象iSocket作为一个发送请求的SocketClient。(4)打开连接(其实只是初始化RSocket对象,并不是真的打开了连接,连地址都没给呢,它上哪打开去啊~),即iSocket.Open(iSocketServ,KAfInet,KSockStream,KProtocolInetTcp);方法中参数含义为,#param1已经连接成功的Socket服务对象,即(1)中提到的iSocketServ;#param2KAfInet,代表该套接字为因特网套接字;#param3KSockStream可靠的面向连接的套接字;#param4KProtocolInetTcpTCP控制传输协议。(5)编写

3、连接方法,如SocketConnect(constTDesC&aServerName,TIntaServerPort);其中#param1主机名称;#param2主机端口,首先判断aServerName是否为IP地址,如果是则进入连接过程,如果不是则通过DNS对主机名进行解析从而得到IP地址,无论是连接还是解析,这两个过程都是异步的,故拦截或者取得解析结果都有在RunL中完成。判断一个主机名是不是IP地址,可以通过TInetAddr类完成,它依赖于in_sock.h头文件和insock.lib库,具体用法如下:TInetAddraddr;if(addr.Input(*m_pServerNam

4、e)==KErrNone){  //进入连接过程}else{  进入解析过程}(6)通过DNS解析主机名地址,使用RHostResolver对象,利用它的Open方法和GetByName方法即可,如m_Resolver.Open(m_SocketServer,KAfInet,KProtocolInetUdp);此处的参数与前面RSocket的Open方法略有不同!Socket网络连接这样写就可以了。m_Resolver.GetByName(*m_pServerName,m_NameEntry,iStatus);通过GetByName方法把参数传给RHostResolver对象内。最后SetA

5、ctive()来启动活动对象。在活动对象内取得结果,具体代码随后附上。(7)进入连接过程,连接过程比较简单,有如下步骤:   TInetAddraddr;   addr.SetPort(m_ServerPort);   addr.SetAddress(aAddr);   m_Socket.Connect(addr,iStatus);执行完以上步骤后就可以启动活动对象了。通过以上步骤,我们就可以通过Socket连接某一个网站了,整个代码后面会给出,该代码只是连接部分,我们会在下一次继续介绍,如果处理Socket的读写功能。尽管现在的代码还有诸多不完善的地方,我们会在以后的讲解中一步步填充完整。

6、#ifndefSOCKETCONNECTION_H#defineSOCKETCONNECTION_H//INCLUDES#include#include#include//RSocketServ,RSocket#include//TInetAddr//CLASSDECLARATIONenum{   ENotConnected,ELookingUp,EConnecting,EConnected};classCSocketConnection:publicCActive{   public:       ~CS

7、ocketConnection();       staticCSocketConnection*NewL();       staticCSocketConnection*NewLC();       voidConnectServer(constTDesC&aServerName,TIntaServerPort);   protected:       //fromCActive       virtua

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。