//下边的代码是介绍同步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 OS中的Socket操作是阻塞的,因此需要正确处理同步和异步通信。 6. **关闭Socket**:通信结束后,应调用`Close()`函数关闭Socket,释放资源。 在"End-to-End_Sockets_API_Example"这个压缩包...
- 在Symbian中,使用`NewL()`或`NewLC()`函数动态创建Socket对象,并通过调用`Open()`方法来指定协议族(如IPv4或IPv6)和套接字类型(如流套接字或数据报套接字)。 2. **连接与监听**: - 对于客户端,使用`...
《Symbian操作系统中的网络编程:借助Socket API实现通信详解》 Symbian操作系统作为曾经在智能手机领域广泛应用的系统,其强大的功能和灵活性使得开发者能够进行深入的网络编程。本资料集围绕“Symbian+网络编程之...
在Symbian中,我们通常使用数据报式Socket来实现UDP通信。 **三、创建UDP Socket** 1. **初始化网络层**:首先,调用`RSocketServ`类的`CreateLocal()`静态方法初始化网络服务。 2. **打开Socket**:接着,通过`...
本文将详细介绍Symbian中Socket引擎的设计思想、关键技术点以及其实现细节。 #### 二、Symbian Socket引擎概述 ##### 2.1 Socket引擎的重要性 Socket引擎是Symbian系统中用于实现网络通信的核心模块之一。它主要...
在Symbian操作系统中,Socket通信是实现设备间网络数据传输的一种基础机制,主要应用于TCP/IP协议栈。TCP(Transmission Control Protocol)是一种面向连接、可靠的传输协议,它保证了数据包在传输过程中的顺序和...
在Symbian操作系统中,网络编程的一个重要方面是使用Socket API。Socket API允许开发者创建能够进行网络通信的应用程序,无论是互联网、红外线还是蓝牙技术。本文主要针对Symbian平台的开发者,旨在介绍如何利用...
压缩包中的"socket"文件可能包含了Symbian平台上的Socket编程实例,包括HTTP客户端和服务端、UDP客户端和服务端的代码,这些代码可以作为学习和开发的参考。 综上所述,Symbian上的Socket编程涉及到网络通信的基础...
在Symbian的Socket编程中,客户端通常使用`RSocket`类来创建连接到服务器的Socket。它需要服务器的IP地址和端口号,然后调用`Connect()`函数发起连接请求。连接成功后,客户端和服务器就可以通过读写Socket数据流...
小小的例子 socket拦截 没有提示窗体 没有短信声音 如果调试时没有成功 去下载S60_3rd_SDK_MR_API_Plug-In_Pack_v5_43.zip 里面有一个SMSUtilities.ZIP 把里面的东西放到相应的 模拟器文件夹中再试试
- 如果需要多个线程同时访问Socket,需使用锁或其他同步机制来保护Socket操作。 7. **监听与接受连接**: - 对于服务器端,使用`Listen()`函数开启监听,然后通过`Accept()`函数等待客户端的连接请求。 8. **...
使用Socket进行SMS拦截,可能需要使用到系统级别的库,如AT命令集来控制SIM卡模块,或者利用特定的Symbian SDK提供的短信API。 5. **SmsIntercet文件**: 压缩包中的"SmsIntercet"很可能是一个实现了SMS Socket...
标题“Symbian中TabView的用法”意味着我们将讨论如何在Symbian应用中集成和操作TabView。在Symbian开发中,TabView通常由CTabView类表示,它是CAknTabGroup的子类。下面是一些关于如何使用TabView的关键知识点: 1...
- **解析**:`Sprite`对象通常不直接使用`paint()`方法进行绘制,而是通过调用Canvas的`drawImage()`等方法来完成。 **4. MIDP中Gauge的使用** 正确选项为 **B**:False - **解析**:MIDP中的`Gauge`类用于实现...
在介绍具体的实现细节之前,我们首先了解Socket的基本概念以及如何在Symbian系统中使用Socket进行DNS解析。 **Socket**是一种用于在网络中实现进程间通信的方式,它基于TCP/IP协议栈。在Symbian平台中,可以通过`...
《Symbian中文技术周刊》是一系列专注于Symbian操作系统技术的资料集合,涵盖了内存管理、模拟器配置、socket编程以及DBMS等多个关键领域。在深入探讨这些主题之前,我们首先需要了解Symbian系统的基本架构和特性。 ...
手机同步的特征与简介_同步d触发器特征方程 手机同步简介: 手机同步是一款免费的支持个人重要...手机同步是一款功能强大、使用便捷、安全可靠的手机数据备份和同步软件,可以满足用户对个人数据的备份和同步需求。
本资源"Font"包含了关于Symbian开发中字体使用的源码示例,旨在帮助开发者深入理解和掌握这一关键技能。 1. **TFont** 类 Symbian平台上的`TFont`类是处理字体的核心,它包含了关于字体样式、大小、颜色等信息。`...
### Symbian中显示中文汉字(3种方法) 在Symbian操作系统中处理中文显示是一项基本但又重要的功能。本文将详细介绍三种不同的方法来实现这一功能,并解释每种方法的具体步骤和技术要点。 #### 方法一:使用UTF-8...