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


C++ Connection::Receive方法代码示例

本文整理汇总了C++中Connection::Receive方法的典型用法代码示例。如果您正苦于以下问题:C++ Connection::Receive方法的具体用法?C++ Connection::Receive怎么用?C++ Connection::Receive使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Connection的用法示例。


在下文中一共展示了Connection::Receive方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Accept

// 新設 : 1999 Feb 15th
// 変更 : 1999 May 12th
//	  受け付け受理か,Busy かを 1byte で送っていたが,EusLisp が読めないよう
//	  なので文字列でこれを送信する事にする
// 変更 : 1999 Jul 7th : 接続された番号を返すようにする
// ----
// 動作 : 途中に接続要求してきた client に対して,accept する
// 返値 : 接続 OK ならば、接続された MultiSocket 内部での番号を返す
//	: 接続 FAIL なら TL_FAIL
int MultiSocket::Accept()
{
	int                 s, i, debug=0;
	struct sockaddr_in  caddr; // クライアント側のアドレス情報を入れるところ
	char                new_name[MAX_STRING], com[10];
	Connection          *tmpconnection;

	if (debug) tl_message ("%s : start", name);
	socklen_t len = (socklen_t)sizeof(caddr);
	s = accept (socket_fd, (struct sockaddr *)&caddr, &len);
	if (debug) tl_message ("Socket accepted");
	for( i=0; i<MAX_MULTI_SOCKET; i++)
		{
			if (i==MAX_MULTI_SOCKET-1 && connection[i]!=NULL)
				{
					// もういっぱいで接続不可能である事を向こうに知らせる
					tl_message ("Too busy");
					strcpy (com, CONNECTION_BUSY);
					connection[i]->my_send (s, com, 4);
					// Lisp, C 共通仕様で文字列終了を意味する '\n' を送信
					com[0] = '\n';
					connection[i]->my_send (s, com, 1);
					return FALSE;
				}
			if (connection[i]==NULL)
				{
					tmpconnection = new Connection( CONNECTION_SOCKET);
	
					tmpconnection->FdRead(s);
					tmpconnection->FdWrite(s);
					tmpconnection->FpRead(fdopen( s,"r+"));// Read&Write
					tmpconnection->FpWrite(tmpconnection->FpRead());
					if (debug) tl_message ("System allows this plugin : ");
					strcpy( com, CONNECTION_OK);
					tmpconnection->my_send (s, com, 4);	// 受け付け OK の信号を向こうに知らせる
					// Lisp, C 共通仕様で文字列終了を意味する '\n' を送信
					com[0] = '\n';
					tmpconnection->my_send (s, com, 1);
					if (debug) tl_message ("Now reading client name...");
					tmpconnection->Receive(CONNECTION_STRING, new_name);
					if (debug) tl_message ("Client Name = %s", new_name);
					tmpconnection->SetName(new_name);
					connection[i] = tmpconnection;
					return i;
				}
		}
	return FALSE;
}
开发者ID:raghavendrajain,项目名称:iirlib,代码行数:57,代码来源:multisocket.cpp


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