本文整理汇总了C++中CBuffer::addBuffer方法的典型用法代码示例。如果您正苦于以下问题:C++ CBuffer::addBuffer方法的具体用法?C++ CBuffer::addBuffer怎么用?C++ CBuffer::addBuffer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBuffer
的用法示例。
在下文中一共展示了CBuffer::addBuffer方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sendmessage
int CSocket::sendmessage(char *ip, int port, CBuffer *source)
{
if(sockid<0)return -1;
int size = 0;
sockaddr_in addr;
if(udp)
{
size = std::min(source->count, 8195);
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ip);
size = sendto(sockid, source->data, size, 0, (sockaddr *)&addr, sizeof(sockaddr_in));
}
else
{
CBuffer sendbuff;
sendbuff.clear();
if(format == 0)
{
sendbuff.writeushort(source->count);
sendbuff.addBuffer(source);
size = send(sockid, sendbuff.data, sendbuff.count, 0);
}else if(format == 1)
{
sendbuff.addBuffer(source);
sendbuff.writechars(formatstr);
size = send(sockid, sendbuff.data, sendbuff.count, 0);
}else if(format == 2)
size = send(sockid, source->data, source->count, 0);
}
if(size == SOCKET_ERROR)return SOCKET_ERROR;
return size;
}
示例2: sendmessage
int CSocket::sendmessage( const char *ip, int port, CBuffer *source )
{
if (sockid<0) return -1;
int size = 0;
SOCKADDR_IN addr;
if(udp)
{
size = min(source->count, 8195);
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ip);
size = sendto(sockid, source->data, size, 0, (SOCKADDR *)&addr, sizeof(SOCKADDR_IN));
}
else
{
CBuffer sendbuff;
sendbuff.clear();
if(format == 0)
{
sendbuff.writeushort(source->count);
sendbuff.addBuffer(source);
size = send(sockid, sendbuff.data, sendbuff.count, 0);
}
else if(format == 1)
{
sendbuff.addBuffer(source);
sendbuff.writechars(formatstr);
size = send(sockid, sendbuff.data, sendbuff.count, 0);
}
else if(format == 2)
size = send(sockid, source->data, source->count, 0);
}
return ((size = SOCKET_ERROR) ? -WSAGetLastError() : size);
}
示例3: sendmessage
int CSocket::sendmessage(char *ip, int port, CBuffer *source)
{
if(sockid<0)return -1;
int size = 0;
SOCKADDR_IN addr;
if(proc == UDP_NORMAL )
{
size = min(source->count, 8195);
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ip);
size = sendto(sockid, source->data, size, 0, (SOCKADDR *)&addr, sizeof(SOCKADDR_IN));
}
else if ( proc == UDP_MULTICAST )
{
//...UDP MULTI-CAST RE-USES SAME ADDRESS
size = min(source->count, 8195);
//...For multi-cast : check if we are sending to a different port
if ( port!= 0 ){
memcpy (&addr, &udpAddr , sizeof(SOCKADDR_IN) );
addr.sin_port = htons(port);
}
size = sendto(sockid, source->data, size, 0, (SOCKADDR *)&addr , sizeof(SOCKADDR_IN));
}
else
{
CBuffer sendbuff;
sendbuff.clear();
if(format == 0)
{
sendbuff.writeushort(source->count);
sendbuff.addBuffer(source);
size = send(sockid, sendbuff.data, sendbuff.count, 0);
}else if(format == 1)
{
sendbuff.addBuffer(source);
sendbuff.writechars(formatstr);
size = send(sockid, sendbuff.data, sendbuff.count, 0);
}else if(format == 2)
size = send(sockid, source->data, source->count, 0);
}
if(size == EWOULDBLOCK)return -errno;
return size;
}