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


C++ Server::DisplayServerInfo方法代码示例

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


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

示例1: main

int main (int argc, char *argv[])
{
	#if defined __linux__ || defined __CYGWIN__
	std::cout << "Running on linux..." << std::endl;
	pthread_t* threads = new pthread_t[2];
	#else
	std::cout << "Running on windows..." << std::endl;
	HANDLE* th = new HANDLE[2];
	#endif

	// Create Server object.
	Server ServerObj (TCPSOCKET, DEFAULTSERVERPORT);			// Without any arguments Server will set defaults, TCPSOCKET as type and 6000 as port.

	// Create Server socket and set socket options.
	ServerObj.CreateSocket (TCPSOCKET);		// No argument means TCPSOCKET
	ServerObj.SetSocketOptions ();

	// Initial Server address struct and bind it with Server's socket.
	ServerObj.InitialiseAddress (6000);		// No argument here will take default port.
	ServerObj.Bind ();

	// Listen for incoming connections.
	ServerObj.Listen ();
	ServerObj.DisplayServerInfo ();

	// Accept any incoming connections.
	ServerObj.Accept ();
	ServerObj.DisplayClientInfo ();

	// Start Sender and receiver threads.
	#if defined __linux__ || defined __CYGWIN__
	pthread_create (&threads[0], NULL, SenderThread, (void*)&ServerObj);
	pthread_create (&threads[1], NULL, ReceiverThread, (void*)&ServerObj);
	#else
	th[0] = (HANDLE)_beginthread (SenderThread, 0, (void*)&ServerObj);
	th[1] = (HANDLE)_beginthread (ReceiverThread, 0, (void*)&ServerObj);
	#endif

	// Wait on threads.
	for (int i=0; i<2; i++)
	{
		#if defined __linux__ || defined __CYGWIN__
		pthread_join (threads[i], NULL);
		#else
		WaitForSingleObject(th[i], INFINITE);
		#endif
	}

	// Close sockets.
	ServerObj.CloseClientSocket ();
	ServerObj.CloseServerSocket ();

	return 0;
}
开发者ID:inf-eth,项目名称:i02-0491-projects,代码行数:54,代码来源:ServerMain.cpp

示例2: main

int main (int argc, char *argv[])
{
	// Create Server object.
	Server ServerObj (TCPSOCKET, DEFAULTSERVERPORT);			// Without any arguments Server will set defaults, TCPSOCKET as type and 6000 as port.

	// Create Server socket and set socket options.
	ServerObj.CreateSocket (TCPSOCKET);		// No argument means TCPSOCKET
	ServerObj.SetSocketOptions ();

	// Initial Server address struct and bind it with Server's socket.
	ServerObj.InitialiseAddress (6000);		// No argument here will take default port.
	ServerObj.Bind ();

	// Listen for incoming connections.
	ServerObj.Listen ();
	ServerObj.DisplayServerInfo ();

	// Accept any incoming connections.
	ServerObj.Accept ();
	ServerObj.DisplayClientInfo ();

	// Send and receive.
	ServerObj.Receive ();
	cout << "No. of bytes received: " << ServerObj.GetNumOfBytesReceived () << endl;
	cout << "Client says: " << ServerObj.GetBuffer() << endl;

	char message[] = "Hello from server.";
	ServerObj.Send ((void *)message, (unsigned int)strlen (message));

	// Close sockets.
	ServerObj.CloseClientSocket ();
	ServerObj.CloseServerSocket ();

	// ********************* UDP Communication ***************************
	cout << "TCP connection closed, now doing UDP communication." << endl;
	ServerObj.CreateSocket (UDPSOCKET);
	ServerObj.InitialiseAddress (6000);
	ServerObj.Bind ();

	cout << "Server recv'in from() packets..." << endl;
	ServerObj.RecvFrom ();
	cout << "They say: " << ServerObj.GetBuffer () << endl;
	ServerObj.DisplayTheirInfo ();

	char UDPmessage[] = "UDP echo message from server.";
	ServerObj.SendTo ((void *)UDPmessage, (unsigned int)strlen (UDPmessage)); // If sending a reply packet most recent received address is used.
	//ServerObj.SendTo ((void *)UDPmessage, strlen (UDPmessage), "localhost", 6001);	// Need to explicitly mention receiver address if not a reply.

	ServerObj.CloseServerSocket ();
	// *******************************************************************

	return 0;
}
开发者ID:inf-eth,项目名称:i02-0491-projects,代码行数:53,代码来源:ServerMain.cpp

示例3: main

int main()
{
	// Create Server object.
	Server ServerObj;

	// Create Server socket and set socket options.
	ServerObj.CreateSocket(TCPSOCKET);		// No argument means TCPSOCKET
	ServerObj.SetSocketOptions();

	// Initialise Server address struct and bind it with Server's socket.
	ServerObj.InitialiseAddress(6000);
	ServerObj.Bind();

	// Listen for incoming connections.
	ServerObj.Listen();
	ServerObj.DisplayServerInfo();

	// Accept any incoming connections.
	ServerObj.Accept();
	ServerObj.DisplayClientInfo();

	// Send and receive.
	int choice = -1;
	Complex A, B, C;
	char Menu[] = "1. Add\n2. Subtract\n3. Multiply\n4. Divide\n5. Disconnect";

	while (choice != 5)
	{
		ServerObj.Receive((void*)&choice, sizeof(int));

		switch (choice)
		{
			case 1:
			{
				ServerObj.Receive((void*)&A, sizeof(Complex));
				ServerObj.Receive((void*)&B, sizeof(Complex));
				C.real = A.real + B.real;
				C.img = A.img + B.img;
				ServerObj.Send((void*)&C, sizeof(Complex));
				break;
			}
			case 2:
			{
				ServerObj.Receive((void*)&A, sizeof(Complex));
				ServerObj.Receive((void*)&B, sizeof(Complex));
				C.real = A.real - B.real;
				C.img = A.img - B.img;
				ServerObj.Send((void*)&C, sizeof(Complex));
				break;
			}
			case 3:
			{
				ServerObj.Receive((void*)&A, sizeof(Complex));
				ServerObj.Receive((void*)&B, sizeof(Complex));
				float a = A.real;
				float b = A.img;
				float c = B.real;
				float d = B.img;
				C.real = a*c-b*d;
				C.img = a*d+b*c;
				ServerObj.Send((void*)&C, sizeof(Complex));
				break;
			}
			case 4:
			{
				ServerObj.Receive((void*)&A, sizeof(Complex));
				ServerObj.Receive((void*)&B, sizeof(Complex));
				float a = A.real;
				float b = A.img;
				float c = B.real;
				float d = B.img;
				float den =c*c+d*d;
				C.real = (a*c+b*d)/den;
				C.img = (b*c-a*d)/den;
				ServerObj.Send((void*)&C, sizeof(Complex));
				break;
			}
			case 5:
				break;
		}
	}

	// Close sockets.
	ServerObj.CloseClientSocket();
	ServerObj.CloseServerSocket();

	return 0;
}
开发者ID:inf-eth,项目名称:i02-0491-courses,代码行数:88,代码来源:ServerMain.cpp


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