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


C++ CSocket::connect方法代码示例

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


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

示例1: main

int main(int argc, char* argv[])
{
	WSADATA  Ws;
	if ( WSAStartup(MAKEWORD(2,2), &Ws) != 0 )
	{
		cout<<"Init Windows Socket Failed::"<<GetLastError()<<endl;
		return -1;
	} 

	CSocket mysocket;
	if ( false == mysocket.init() )
	{
		cout<<"Create Socket Failed!"<<endl;
		return -1;
	}
	if ( false == mysocket.connect(AF_INET, IP_ADDRESS, PORT) )
	{
		cout<<"Connect Failed!"<<endl;
		return -1;
	}
	else
	{
		cout<<"Connect Success!"<<endl;
	}
	//SOCKET clientSocket = mysocket.accept_connect();

	ThreadPool threadPool(1);
	threadPool.Call(&DoJob);

	fd_set fdread;
	int ret;

	while(true)
	{
// 		FD_ZERO(&fdread);
// 		FD_SET(mysocket.get_sock(), &fdread);
// 		if (SOCKET_ERROR == (ret = select(0, &fdread, NULL, NULL, NULL)))
// 		{
// 			continue;
// 		}
// 
// 		if (ret > 0)
// 		{
// 			if (FD_ISSET(mysocket.get_sock(), &fdread))
// 			{
// 				
// 			}
// 		}
	}


	WSACleanup();
	return 0;
}
开发者ID:MrAlun,项目名称:GameServer,代码行数:54,代码来源:main.cpp

示例2: ListServer_Connect

void ListServer_Connect()
{
	if ((lsConnected = listServer.connect(findKey("listip"), atoi(findKey("listport")))) == false)
	{
		errorOut("rclog.txt", "Unable to connect to list server", true);
		return;
	}

	errorOut("rclog.txt", "Connected to the list server successfully\n", true);
	listServer.setSync(false);

	// send gserver info to listserver
	ListServer_Send(CPacket() << (char)SLSNAME << listServerFields[0]  << "\n" << (char)SLSDESC << listServerFields[1]  << "\n" << (char)SLSLANG << listServerFields[2]  << "\n" << (char)SLSVER  << listServerFields[3]  << "\n" << (char)SLSURL  << listServerFields[4]  << "\n" << (char)SLSIP   << listServerFields[5]  << "\n" << (char)SLSPORT << toString(serverPort) << "\n");

	// send players to listserver
	CPacket pPacket;
	for (int i = 0; i < playerList.count(); i++)
	{
		CPlayer *player = (CPlayer *)playerList[i];
		pPacket << (char)player->accountName.length() << player->accountName << player->getProp(NICKNAME) << player->getProp(CURLEVEL) << player->getProp(PLAYERX) << player->getProp(PLAYERY) << player->getProp(PALIGNMENT) << (char)player->type;
	}

	ListServer_Send(CPacket() << (char)SLSCOUNT << (char)playerList.count() << pPacket << "\n");
}
开发者ID:Guthius,项目名称:gs2emu-googlecode,代码行数:24,代码来源:CListServer.cpp

示例3: main

int main(int argc, char *argv[])
{
	#ifdef PSPSDK
		pspDebugScreenInit();
		SetupCallbacks();
	#else
		// Shut down the server if we get a kill signal.
		signal( SIGINT, (sighandler_t) shutdownServer );
		signal( SIGTERM, (sighandler_t) shutdownServer );
	#endif

	/* Setup Data-Directory */
	dataDir = CBuffer(argv[0]).replaceAll("\\", "/");
	dataDir = dataDir.copy(0, dataDir.findl('/') + 1);
	programDir = dataDir;
	dataDir << "world/";

	/* Main Initiating */
	adminNames.load( __admin, sizeof(__admin) / sizeof(const char*) );
	colourNames.load( __colours, sizeof(__colours) / sizeof(const char*) );
	clothCommands.load( __cloths, sizeof(__cloths) / sizeof(const char*) );
	defaultFiles.load( __defaultfiles, sizeof(__defaultfiles) / sizeof(const char*) );
	playerIds.add(0);
	playerIds.add(0);
	npcIds.add(0);
	srand((int)time(NULL));

	/* Load Important Files */
	updateFile("rchelp.txt");
	updateFile("rcmessage.txt");
	updateFile("rules.txt");
	updateFile("serverflags.txt");
	updateFile("servermessage.html");
	updateFile("foldersconfig.txt");

	/* Load Settings */
	if (!loadSettings("serveroptions.txt"))
	{
		errorOut("errorlog.txt", "Unable to load server settings..");
		return 1;
	}

	/* Load Weapons */
	if (!loadWeapons("weapons.txt"))
	{
		errorOut("errorlog.txt", "Unable to load weapons from weapons.txt..");
		return 1;
	}

	/* Initialize Sockets */
	serverSock.setType( SOCKET_TYPE_SERVER );
	serverSock.setProtocol( SOCKET_PROTOCOL_TCP );
	serverSock.setOptions( SOCKET_OPTION_NONBLOCKING );
	serverSock.setDescription( "serverSock" );
	CString empty;
	if ( serverSock.init( empty, serverPort ) )
		return 1;

	// Connect server socket.
	if ( serverSock.connect() )
	{
		errorOut("errorlog.txt", CString() << "SOCK ERROR: Unable to listen on port: " << serverPort);
		return 1;
	}

	/* Server Finished Loading */
	printf("GServer 2 by 39ster\nSpecial thanks to Marlon, Agret, Pac300, 39ster and others for porting the \noriginal 1.39 gserver to 2.1\nServer listening on port: %s\nServer version: Build %s\n\n", serverPort.text(), listServerFields[3].text());
	errorOut("serverlog.txt", "Server started");

	if ( listServerFields[5] == "localhost" )
		errorOut("serverlog.txt", "[DEBUG_LOCALHOSTMODE] Localhost mode is activated.\nListserver communication & account authentication are disabled.", true);

	serverRunning = true;

	if ( !(listServerFields[5] == "localhost") )
		if (!lsConnected)
			ListServer_Connect();

	while (serverRunning)
	{
		long long second = time(NULL);

		while (second == time(NULL))
		{
			acceptNewPlayers(serverSock);
			for (int i = 0; i < newPlayers.count(); i ++)
			{
				CPlayer* player = (CPlayer*)newPlayers[i];
				player->main();
				if (player->deleteMe)
				{
					delete player;
					i--;
				}
			}

			for(int i = 0; i < playerList.count(); i++)
			{
				CPlayer* player = (CPlayer*)playerList[i];
				player->main();
//.........这里部分代码省略.........
开发者ID:Guthius,项目名称:gs2emu-googlecode,代码行数:101,代码来源:main.cpp

示例4: ListServer_Connect

void ListServer_Connect()
{
	if ( serverRunning == false ) return;
	if ( setSock == false )
	{
		setSock = true;
		listServer.setDescription( "listserver" );
		listServer.setProtocol( SOCKET_PROTOCOL_TCP );
		listServer.setType( SOCKET_TYPE_CLIENT );
		listServer.setOptions( SOCKET_OPTION_NONBLOCKING );
	}
	CString ip(findKey("listip")), port(findKey("listport"));
	listServer.init( ip, port );
	int val = listServer.connect();
	if (val == 0 || val == SOCKET_ALREADY_CONNECTED) lsConnected = true;
	else lsConnected = false;
	if ( !lsConnected )
	{
		errorOut("errorlog.txt", CBuffer() << "Unable to connect to list server.", true);
		listServer.disconnect();
		return;
	}

	errorOut("serverlog.txt", CBuffer() << "Connected to the list server successfully.", true);

	// Send the ServerHQ password.
	CPacket pack;
	pack << (char)SLSSERVERHQPASS << serverhq_pass << "\n";

	// assemble server packet.
	pack << (char)SLSNEWSERVER << (char)listServerFields[0].length() << listServerFields[0];
	pack << (char)listServerFields[1].length() << listServerFields[1];
	pack << (char)listServerFields[2].length() << listServerFields[2];
	pack << (char)listServerFields[3].length() << listServerFields[3];
	pack << (char)listServerFields[4].length() << listServerFields[4];
	pack << (char)listServerFields[5].length() << listServerFields[5];
	pack << (char)serverPort.length() << serverPort;
	if (localip == CString("AUTO"))
	{
		CString slocalip(listServer.getLocalIp());
		if (slocalip == CString("127.0.1.1") || slocalip == CString("127.0.0.1"))
		{
			errorOut("serverlog.txt", CBuffer() << "[WARNING] Socket returned " << slocalip << " for its local ip!  Not sending local ip to serverlist.", true);
			pack << (char)0;
		}
		else pack << (char)slocalip.length() << slocalip;
	}
	else pack << (char)localip.length() << localip;
	pack << "\n";

	// Send the ServerHQ level.
	pack << (char)SLSSERVERHQLEVEL << (char)serverhq_level << "\n";

	// send gserver info to listserver
	ListServer_Send(pack);

	// send players to listserver
	CPacket pPacket;
	for (int i = 0; i < playerList.count(); i++)
	{
		CPlayer *player = (CPlayer *)playerList[i];
		pPacket << (char)player->accountName.length() << player->accountName << player->getProp(NICKNAME) << player->getProp(CURLEVEL) << player->getProp(PLAYERX) << player->getProp(PLAYERY) << player->getProp(PALIGNMENT) << (char)(1 << player->type);
	}

	ListServer_Send(CPacket() << (char)SLSCOUNT << (char)playerList.count() << pPacket << "\n");
}
开发者ID:Guthius,项目名称:gs2emu-googlecode,代码行数:66,代码来源:CListServer.cpp


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