Exemple #1
0
TEST(SocketTest, set_nonblocking_mode) {
  boost::shared_ptr<Socket> sock(Socket::tcp("localhost", "http"));
  ASSERT_TRUE(sock->set_nonblocking_mode(true));
  ASSERT_TRUE(sock->set_nonblocking_mode(false));

  boost::shared_ptr<Socket> sock2(Socket::udp());
  ASSERT_TRUE(sock2->set_nonblocking_mode(true));
  ASSERT_TRUE(sock2->set_nonblocking_mode(false));
}
Exemple #2
0
int main(int argc, char *argv[])
{
#ifndef _WIN32
	signal(SIGHUP, sighandler);
	signal(SIGINT, sighandler);
	signal(SIGPIPE, sigpipe);
#endif

	time_t tstart = time(NULL);
	{
		StdoutLog log;
		{
			evHandler h(&log);
			ph = &h;
			{
				lSocket sock(h, true);
				sock.Open(HOST, PORT);
				h.Add(&sock);
				{
					l2Socket sock2(h, true);
					sock2.Open(HOST, PORT);
					h.Add(&sock2);
					{
						l3Socket sock3(h, true);
						sock3.Open(HOST, PORT);
						h.Add(&sock3);

						h.EventLoop();
						h.CloseAll();

						// %! one socket refuses to go away
						while (h.GetCount() > 1)
						{
							h.Select(1, 0);
						}
						printf("Exiting 1...\n");
						fflush(stdout);
					}
					printf("Exiting 2...\n");
					fflush(stdout);
				}
				printf("Exiting 3...\n");
				fflush(stdout);
			}
			printf("Exiting 4...\n");
			fflush(stdout);
		}
		printf("Exiting 5...\n");
		fflush(stdout);
	}
	printf("Exiting 6...\n");
	fflush(stdout);

	time_t tstop = time(NULL);

	time_t total = tstop - tstart + 1;

	printf("lc:   %d\n", lc);
	printf("l2c:  %d\n", l2c);
	printf("l3c:  %d\n", l3c);

	printf("lc:   %f\n", (double)lc / (double)total);
	printf("l2c:  %f\n", (double)l2c / (double)total);
	printf("l3c:  %f\n", (double)l3c / (double)total);
}