WEB开发网
开发学院手机开发Symbian 开发 Symbian socket 网络编程方法 阅读

Symbian socket 网络编程方法

 2010-03-18 20:59:00 来源:WEB开发网   
核心提示:特别地,我们可以注意到所有的函数都以一个参数TUint aFlags作为标示作用,Symbian socket 网络编程方法(15),到目前为止还没有对他进行讨论,这个参数的作用是让应用程序可以选择特定协议的指定属性,仅仅可用于无连接的数据报socket使用,使用连接的sockets下面的函数,以此来设置协议接收处理数

特别地,我们可以注意到所有的函数都以一个参数TUint aFlags作为标示作用,到目前为止还没有对他进行讨论。这个参数的作用是让应用程序可以选择特定协议的指定属性,以此来设置协议接收处理数据的方式。

下面介绍的另外一个函数Read(),他将默认标示参数设置为0,并且也去掉了TSockXfrLength类型的参数。如果使用该函数,那么接收数据的长度就只能通过接收目标字符串的长度来获得了。

void Read(TDes8& aDesc, TRequestStatus& aStatus);

除了上述的两个例外,这个Read()函数的操作效果就基本同 Recv()一样了。

注意,这个函数仅仅在已连接的socket通信中是可以使用的。

发送数据

使用未连接的sockets

下面的函数是RSocket中用来向未连接的socket发送数据的。

void SendTo(const TDesC8& aDesc, TSockAddr& anAddr, TUint flags, TRequestStatus& aStatus); void SendTo(const TDesC8& aDesc, TSockAddr& anAddr, TUint flags, TRequestStatus& aStatus, TSockXfrLength& aLen);

如果应用程序连接的是无连接的socket,那么就要使用RSocket::SendTo()函数来向远程主机发送数据。

这个函数中的第一个参数是包含了要发送数据内容的字符串,而要发送内容的长度,则是由字符串的长度决定的。

当数据发送完成的时候,调用该函数的应用程序将会得到通知。如果你使用的是带有TSockXfrLength类型参数的函数重载,那么已发送的数据的长度,将会在完成的时候被保存在该参数中。

第二个参数包含了要发送数据的远程主机的地址,这个地址的格式应该符合socket被打开的时候制定的协议所支持的地址格式,比如,如果我们选择了 TCP/IP协议,那么我们就需要使用TInetAddr作为发送主机的地址。

第三个参数,TUint类型的标志位,它是一个和协议相关的位标识符,定义了某些需要向协议模块中传递参数的标志信息。

需要注意的是,在一个socket连接中,在任意时间最多仅有一个发送操作时处于等待状态的。

上述介绍的函数,仅仅可用于无连接的数据报socket使用。

使用连接的sockets

下面的函数,是RSocket提供的用来向一个已经连接的socket发送数据的。

void Send(const TDesC8& aDesc, TUint someFlags, TRequestStatus&

上一页  10 11 12 13 14 15 16 17 18  下一页

Tags:Symbian socket 网络编程

编辑录入:coldstar [复制链接] [打 印]
赞助商链接