ACE中Socket IPC通讯包装类族
2010-09-04 20:48:04 来源:WEB开发网ACE_SOCK_IO类,包装了Socket数据通讯的基本方法。本类提供的功能
1 支持数据的发送和接收
2 支持分散读操作
3 支持集中写操作
4 支持阻塞,非阻塞,定时 I/O操作
基本结构如下
class ACE_SOCK_IO : public ACE_SOCK
{
public:
ACE_SOCK_IO (void);
~ACE_SOCK_IO (void);
//接收数据
ssize_t recv (void *buf,
size_t n,
const ACE_Time_Value *timeout = 0) const;
//分散读操作
ssize_t recv (iovec iov[],
size_t n,
const ACE_Time_Value *timeout = 0) const;
//发送数据
ssize_t send (const void *buf,
size_t n,
const ACE_Time_Value *timeout = 0) const;
//集中写操作
ssize_t send (const iovec iov[],
size_t n,
const ACE_Time_Value *timeout = 0) const;
};
ACE_SOCK_Stream类,继承ACE_SOCK_IO类。在ACE_SOCK_IO类提供的功能上,添加了发送
和接收刚好n个字节的能力。基本结构如下
class ACE_Export ACE_SOCK_Stream : public ACE_SOCK_IO
{
public:
ACE_SOCK_Stream (void);
ACE_SOCK_Stream (ACE_HANDLE h);
~ACE_SOCK_Stream (void);
//刚好读取n个字节的数据
ssize_t recv_n (void *buf,
size_t len,
const ACE_Time_Value *timeout = 0,
size_t *bytes_transferred = 0) const;
//分散读刚好n个字节操作
ssize_t recvv_n (iovec iov[],
int iovcnt,
const ACE_Time_Value *timeout = 0,
size_t *bytes_transferred = 0) const;
//刚好发送n个字节的数据
ssize_t send_n (const void *buf,
size_t len,
const ACE_Time_Value *timeout = 0,
size_t *bytes_transferred = 0) const;
//集中写刚好n个字节操作
ssize_t sendv_n (const iovec iov[],
int iovcnt,
const ACE_Time_Value *timeout = 0,
size_t *bytes_transferred = 0) const;
int close_reader (void);
int close_writer (void);
int close (void);
typedef ACE_INET_Addr PEER_ADDR;
};
更多精彩
赞助商链接