当前位置: 首页>>代码示例>>C++>>正文


C++ CBuffer::addBuffer方法代码示例

本文整理汇总了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;
}
开发者ID:serebii01,项目名称:39DLL-4-Linux,代码行数:34,代码来源:socket.cpp

示例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);
}
开发者ID:MensInvictaManet,项目名称:Projects,代码行数:35,代码来源:CSocket.cpp

示例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;
}
开发者ID:RawLiquid,项目名称:RPi-Service,代码行数:46,代码来源:sock.cpp


注:本文中的CBuffer::addBuffer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。