Symbian中同步socket用法
来源:互联网 发布:淘宝的回收站在哪里 编辑:程序博客网 时间:2024/06/13 23:26
//下边的代码是介绍同步socket的用法:
//需要用到的lib,可能不全,请看sdk的help自己添加
esock.lib
//需要的头文件,可能不全,请看sdk的help自己添加
#include <in_sock.h>
#include <nifman.h>
#include <Es_sock.h>
#if defined __WINS__
_LIT(KConnectIP,"192.168.0.1");//连接的ip地址,换成测试的ip
#else
_LIT(KConnectIP,"10.0.0.172");//移动的cmwap代理网关
#endif
const int KConnectPort = 80;//端口
HBufC8 *SocketGetUrl(TDesC8 &geturl);
void TestSocket()
{
_LIT8(KSendData, "POST http:://www.google.com.cn http/1.1/r/n/r/n");
TBuf8<128> sendData(KSendData);
HBufC8 *body = SocketGetUrl(sendData);
if(body)
{
//服务器端返回的数据处理
delete body;
}
}
HBufC8 *SocketGetUrl(TDesC8 &geturl)
{
RNif iNif;
RSocket iSocket;
TRequestStatus iStatus = KRequestPending;
TBuf8<512> writeBuf(geturl);
TBuf8<64> recvBuf;
HBufC8 *iBuffer = NULL;
iNif.Open();
{
RSocketServ iSocketServ;
User::LeaveIfError(iSocketServ.Connect());
TInetAddr iAddress;
if (iAddress.Input(KConnectIP) == KErrNone)
{
User::LeaveIfError(iSocket.Open(iSocketServ, KAfInet, KSockStream, KProtocolInetTcp));
iAddress.SetPort(KConnectPort);
iStatus = KRequestPending;
iSocket.Connect(iAddress, iStatus);
User::WaitForRequest(iStatus);
if (iStatus.Int() ==KErrNone)
{
iStatus = KRequestPending;
iSocket.Write(writeBuf,iStatus);
User::WaitForRequest(iStatus);
if (iStatus.Int() ==KErrNone)
{
TSockXfrLength iDummyLength;
TInt recvSize = 0;
for(;;)
{
iStatus = KRequestPending;
iSocket.RecvOneOrMore(recvBuf, 0, iStatus, iDummyLength);
User::WaitForRequest(iStatus);
if (iStatus.Int()==KErrNone)
{
recvSize += recvBuf.Length();
if(iBuffer==NULL)
iBuffer = HBufC8::NewL(recvSize);
else
iBuffer = iBuffer->ReAlloc(recvSize);
iBuffer->Des().Append(recvBuf);
}
else
{
break;
}
}
}
}
iSocket.Close();
}
iSocketServ.Close();
}
iNif.Close();
return iBuffer;
}
此段代码只是对socket用法的简单介绍,没有超时处理,如果要做超时处理的话,请自己添加。
- Symbian中同步socket用法
- Symbian中同步socket用法
- Symbian中同步socket用法
- Symbian中同步socket用法
- 我的第一篇文章:Symbian中同步socket用法
- 浅析symbian中RFileLogger用法
- 浅析symbian中RFileLogger用法
- symbian中socket实现HTTP流程
- Symbian中如何转换异步操作为同步操作
- Symbian中如何转换异步操作为同步操作
- symbian同步绘图(转载)
- Symbian的Socket
- symbian socket示例
- Socket中select()的用法
- Java中Socket的用法
- Java 中Socket的用法
- Symbian常用工具用法说明
- Symbian常用工具用法说明
- 求算一任意长度字符串中不同的字符以及它的个数
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
- 定位的new和new[ ]运算符
- ASP.NET使用代码访问网址,并读取响应的内容
- joomla修改所有文章的global参数
- Symbian中同步socket用法
- 一些很酷的.Net技巧
- ORA-01031问题的一些总结!
- 不重启Linux服务器关闭SeLinux的方法
- 《疯狂的程序员》
- javascript学习
- Head First C# 中文版 图文皆译 第五章 封装 page174
- 逗号分割的字符串转成表
- 日语初级语法疑问句