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


C++ ServerSocket::accept方法代码示例

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


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

示例1: createSocketPair

void IOUtil::createSocketPair(int pair[2]) throw (IOException&)
{
#if defined(WIN32)
	Socket connectSocket;
	Socket serverClientSocket;
	ServerSocket listenSocket;

	SocketAddress loopback = SocketAddress::loopback(AF_INET, 0);
	listenSocket.listen(loopback, 5, false);
	connectSocket.connect(listenSocket.getLocalAddress(), true);

	if (!listenSocket.accept(serverClientSocket))
	{
		THROW2(IOException, "Can't accept for socket pair");
	}

	pair[0] = connectSocket.detach();
	pair[1] = serverClientSocket.detach();
#else
	if (0 != ::socketpair(AF_LOCAL, SOCK_STREAM, 0, pair))
	{
		THROW2(IOException, "Can't create socket pair");
	}
#endif
}
开发者ID:denofiend,项目名称:code-lib,代码行数:25,代码来源:IOUtil.cpp

示例2: main

int main (int argc, char* argv[]) {
    struct sigaction sa;
    memset(&sa, 0, sizeof(sa));
    sa.sa_handler = &sig_handler;

    sigaction(SIGINT, &sa, NULL);


    IniParser* ini = new IniParser("server.ini");
    documentRoot = ini->get("document_root");
    std::string port = ini->get("port");
    delete(ini);
    
    ServerSocket* server = new ServerSocket(port);
    ClientSocket* client = NULL;

    while (!stop) {
        client = server->accept(true);
        
        if (client != NULL) {
            pthread_t tid;
            pthread_create(&tid, NULL, &clientThread, client);
            pthread_detach(tid);
        }
    }
    
    delete(server);

    std::cout << "Shutdown complete." << std::endl;
    
    return 0;
}
开发者ID:x00one,项目名称:LiteServer,代码行数:32,代码来源:server.cpp

示例3: main

int main (){
  cout << "server running...." << endl;
  try{                                  
    ServerSocket server ( 30000 );      // Create main server socket
    while ( true ){                     // server runs forever
      ServerSocket new_sock;            // bind user socket to port and listen
      server.accept ( new_sock );
      printUsage();
      try{
	while ( true ){
	  char command[256];	        //user input
	  string reply;	                //command from client
	  cout << "> ";  
	  cin.getline(command,256);
	  if (strlen(command) == 0)     //re-prompt user if input is empty
	    continue;
	  new_sock << string(command);  //send command to create
	  new_sock >> reply;	        //read confirmation
	  cout << reply <<endl;
	}
      }catch ( SocketException& ) {}
    }
  }
  catch ( SocketException& e ){
    cout << "Exception was caught:" << e.description() << endl << "Exiting.";
  } 
  return 0;
}
开发者ID:JanetGuo,项目名称:cs353-final,代码行数:28,代码来源:server_main.cpp

示例4: main

int main(int argc, const char * argv[])
{
	m_g = make_shared<Game>(Game());

    // start command consumer thread
    thread consumer {consume_command};

	// keep client threads here, so we don't need to detach them
	vector<thread> handlers;
	    
	// create a server socket
	ServerSocket server {machiavelli::tcp_port};

	while (true) {
		try {
			while (true) {
				// wait for connection from client; will create new socket
				cerr << "server listening" << '\n';
				unique_ptr<Socket> client {server.accept()};

				// communicate with client over new socket in separate thread
                thread handler {handle_client, move(client)};
				handlers.push_back(move(handler));
			}
		} catch (const exception& ex) {
			cerr << ex.what() << ", resuming..." << '\n';
        } catch (...) {
            cerr << "problems, problems, but: keep calm and carry on!\n";
        }
	}
    return 0;
}
开发者ID:Retoxified,项目名称:CPPS_Machiavelli,代码行数:32,代码来源:main.cpp

示例5: main

int main()
{
  /*
  StdWriteRead stdWriteRead;
  runloop.registerReadIntent(fileno(stdin), &stdWriteRead);
  runloop.run();
  */
  /*
  try
  {
    RunLoop runloop;
    Socket socket;
    socket.connect("localhost", 22, false);
    int sock = socket.getSocket();
    StdWriteRead stdWriteRead(sock);
    runloop.registerReadIntent(sock, &stdWriteRead);
    runloop.run();
  } 
  catch ( std::runtime_error r )
  {
    fprintf(stderr, r.what());
  }
  */
  ServerSocket serverSocket;
  serverSocket.listen("0.0.0.0", 3000, 10);
  std::string ip;
  serverSocket.accept(&ip, NULL);
  printf("socket: %s\n", ip.c_str());
}
开发者ID:ccosmin,项目名称:eventloop,代码行数:29,代码来源:Main.cpp

示例6: main

int main(){
	
 	Database db("database");
  //listening requests
  try{
      // Create the socket
    ServerSocket server ( 30000 );
    while(true){
      ServerSocket new_sock;
      server.accept (new_sock);
      try{
        std::string data;
        new_sock >> data;
        std::string *res = db.request(data);
        new_sock << *res;
        delete res;
      }catch (SocketException& e){
        std::cout << "Something go wrong: " << e.description() << "\nExiting.\n";
      }

    }
  }
  catch (SocketException& e){
    std::cout << "Something go wrong: " << e.description() << "\nExiting.\n";
  }

  return 0;
}
开发者ID:VladimirCourse,项目名称:Small-DBMS,代码行数:28,代码来源:app.cpp

示例7: accept

 bool accept(int port, string address = "0")
 {
     inactiveTime = 0;
     ServerSocket* serverSocket = new ServerSocket();
     socket = serverSocket;
     return serverSocket->accept(port, address);
 }
开发者ID:timothyfee,项目名称:AmoebaServer,代码行数:7,代码来源:Connection.hpp

示例8: main

int main ( int argc, int argv[] )
{
  std::cout << "running....\n";

  try
    {
      // Create the socket
      ServerSocket server ( 6006 );

      while ( true )
	{

	  ServerSocket new_sock;
	  server.accept ( new_sock );

	  try
	    {
	      while ( true )
		{
		  char *data;
		  //new_sock >> data;
		  new_sock << "Mesaje";
		}
	    }
	  catch ( SocketException& ) {}

	}
    }
  catch ( SocketException& e )
    {
      cout << "Exception was caught:" << e.description() << "\nExiting.\n";
    }

  return 0;
}
开发者ID:alexandruradovici,项目名称:linuxeyes,代码行数:35,代码来源:simple_server_main.cpp

示例9: run

        virtual void run(){
            try{
                unsigned char buf[1000];

                ServerSocket server;
                server.bind( "127.0.0.1", SocketFactoryTest::DEFAULT_PORT );

                net::Socket* socket = server.accept();
                server.close();

                socket->setSoLinger( false, 0 );

                synchronized(&mutex)
                {
                    numClients++;
                    mutex.notifyAll();
                }

                while( !done && socket != NULL ){

                    io::InputStream* stream = socket->getInputStream();
                    memset( buf, 0, 1000 );
                    try{
                        if( stream->read( buf, 1000, 0, 1000 ) == -1 ) {
                            done = true;
                            continue;
                        }

                        lastMessage = (char*)buf;

                        if( strcmp( (char*)buf, "reply" ) == 0 ){
                            io::OutputStream* output = socket->getOutputStream();
                            output->write( (unsigned char*)"hello", (int)strlen("hello"), 0, (int)strlen("hello") );
                        }

                    }catch( io::IOException& ex ){
                        done = true;
                    }
                }

                socket->close();
                delete socket;

                numClients--;

                synchronized(&mutex) {
                    mutex.notifyAll();
                }

            }catch( io::IOException& ex ){
                printf("%s\n", ex.getMessage().c_str() );
                CPPUNIT_ASSERT( false );
            }catch( ... ){
                CPPUNIT_ASSERT( false );
            }
        }
开发者ID:WilliamDrewAeroNomos,项目名称:muthur,代码行数:56,代码来源:SocketFactoryTest.cpp

示例10: _main

static int _main(int argc, char **argv) {
	vector<string> args(argc-1);
	for (int i=1; i<argc; ++i) {
		args[i-1] = argv[i];
	}

	args.at(0);
	//YaoProtocol yao;
	Socket *s;

	ifstream fmtin("/home/louis/sfe/priveq.fmt");
	FmtFile fmt = FmtFile::parseFmt(fmtin);
	cout << "Read fmt file" << endl;
	ifstream in("/home/louis/sfe/priveq.circ");
	Circuit_p cc = Circuit::parseCirc(in);

	if (args[0] == ("A")) {
		args.at(1);
		BigInt n = BigInt::parseString(args[1]);
		bit_vector input_bits = toBits(n, fmt.numInputs(0));

		cout << "connecting" << endl;
		s = new Socket("localhost", 5437);
		DataOutput *out = s->getOutput();
		DataInput *in = s->getInput();
		YaoSender cli;
		cli.setStreams(in, out);
		cli.go(cc, fmt, input_bits);
		delete out;
		delete in;
		delete s;
	} else if (args[0] == ("B")) {
		args.at(1);
		BigInt n = BigInt::parseString(args[1]);
		bit_vector input_bits = toBits(n, fmt.numInputs(1));

		args.at(1);
		YaoChooser srv;

		cout << "listening" << endl;
		ServerSocket *ss = new ServerSocket(5437);
		s = ss->accept();
		DataOutput *out = s->getOutput();
		DataInput *in = s->getInput();
		srv.setStreams(in, out);
		bit_vector circ_out = srv.go(cc, fmt, input_bits);
		for (uint i=0; i<circ_out.size(); ++i) {
			cout << "output " << i << ": " << circ_out[i] << endl;
		}
		delete s;
		delete ss;
		delete out;
		delete in;
	}
	return 0;
}
开发者ID:lpkruger,项目名称:sfe-tools,代码行数:56,代码来源:YaoProtocol.cpp

示例11: main

int main ( int argc, char **argv )
{
  std::cout << "running....\n"; //Indicate that the server is running
  refreshSnippets(); //refresh the snippets to make sure everything is running properly
  //Error handling for creating the sockets
  try
    {
      // Create the socket
      ServerSocket server (7777);
      while (true)
		{
		  ServerSocket serverSocket; //Create the server socket 
		  server.accept (serverSocket);
		  //Error handling for receiving the data
		  try { while(true)
			{
			  string input; //Input variable from the client
			  serverSocket > input; //Direct the input from the socket to the variable
			  //Check for a certain flag
			  if(input == "-i")
			  {
			  	// Write the reply back to the client
			  	serverSocket << "Snippet inserted";
			  	while(1) //While true
			  	{
				  	string snippetIn; //String variable for incoming snippet
				  	serverSocket > snippetIn; //Redirect the socket data to the variable
				  	if(snippetIn == "\0") break; //Check to see if we have a terminating character
				  	writeMessage(snippetIn.c_str()); //If not, write the serialized data to a file
				  	updateDesktopFile(); //Refresh the desktop file
			  	}
			  };
			  //Check for certain flags
			  if(input == "-c")
			  {
			  	serverSocket << "Snippets Cleared"; //Let the client know the server was cleared
			  	ofstream myfile ("snippet.txt"); //Open file without append flags
			  	myfile << "\n"; 
			  	myfile.close(); // Close file
			  	updateDesktopFile(); //Update desktop file
			  };
			}// end while(true)
		    }
		   //Catch any exception thrown by the socket 
		  catch ( SocketException& ){}
		}//Close the top while(true)
    }// close try
  //Catch any exception thrown by the socket while exiting
  catch ( SocketException& e ) {std::cout << "Exception " << e.description() << "\n while the socket was Exiting.\n";};

  return 0;
}
开发者ID:courvillejustin,项目名称:messagingProtocol,代码行数:52,代码来源:server.cpp

示例12: server

//this thread handles socket connection to the network
void * ServerThread(void * str)
{
	printf("ServerThread Started \n");
	CHKcon=0;
	// Create the socket
	ServerSocket server ( 30000 );
    while(true)
    {
		ServerSocket new_sock;
		server.accept ( new_sock );//start listening to port 30000
		try
		{
			//cvNamedWindow("thresh");/////////////delet it
			while (true)
			{
						////////////ball tracking
						//IplImage frame0;
						//frame0=img0;
						//IplImage* imgHSV = cvCreateImage(cvGetSize(&frame0),8,3);
						//cvCvtColor(&frame0,imgHSV, CV_BGR2HSV);
						//IplImage* imgThreshed= cvCreateImage(cvGetSize(&frame0),8,1);
						//cvInRangeS(imgHSV,cvScalar(20,100,100),cvScalar(30,255,255),imgThreshed);
						//cvReleaseImage(&imgHSV);
						
						//////////////////////
				std::string data;
				new_sock >> data;
				if(data.length()>2)
					if((data[0]=='*')&&(data[1]=='#')&&(data[data.length()-1]=='*'))
					{
						CHKcon=0;//resets connection check timer
						switch (data[2])
						{
							case 'M'://Motors instruction
								if(data.length()==6)
								{
									//printf("%d %d \n",int(data[3])-128,int(data[4])-128);
									runmotors((int(data[3])-64)*4,(int(data[4])-64)*4);
								}
								break;
							case 'S':
								festivalst= data.substr(3,data.length()-4);
							break;
						}
					}
				new_sock << data;
			 }
		}
		catch ( SocketException& ) {}	
		usleep(1000);
	}
}
开发者ID:rezarazavi,项目名称:MyRO,代码行数:53,代码来源:main.cpp

示例13: Communication

void Communication()
{
	try
  {
    // Create the socket
    ServerSocket server (port);
		int rounds = 16;
		string rStr = "";

    while ( true )
	  {
			//ServerSocket new_sock;
  	  server.accept (new_sock);
			stop = false;
			weFinish = false;
  	  try
      {
  	      while ( true )
          {
            std::string data;
						cout << "Waiting for command..." << endl;
  		      new_sock >> data;
            cout << "Received :: " << data << endl;
						if(data != "Stop")
						{
            	rounds = std::stoi(data);
							std::thread (ExecuteThreads_high, rounds).detach();
							std::thread (checkFinish).detach();
							cout << "Started Computing..." << endl;
						}
						else
						{
							cout << "Stopped... Check at other server for answer" << endl;
							stop = true;
							break;
						}
  		    }
  	  }
      catch ( SocketException& e) {
				//cout << e.description()<< endl;
			}
			cout << "------------ Completed Successfully ---------------\n";
  	}
  }
  catch ( SocketException& e )
  {
      cout << "Exception was caught:" << e.description() << "\nExiting.\n";
  }
}
开发者ID:sarvani13,项目名称:Source,代码行数:49,代码来源:Server_main.cpp

示例14: main

int main(int argc,char **argv) {
	cout << "running...." << endl;
	ServerSocket *server;

	try
	{
		server = new ServerSocket(30000);	// 等待client連線
	}
	catch ( SocketException& e )
	{
		cout << "Exception was caught:" << e.description() << "\nExiting.\n";
		return -1;
	}

	while(true)
	{
		try
		{
			struct imagedata image;
			// 把第一個資料填入
			memset(&image,1,sizeof(struct imagedata));	// 不可以填0,否則會出現錯誤,可能是所有成員都必需要有資料
			image.r_pixel[0][0]='P';	// 先填一個數值進去,到client端再讀取出來,看是否有錯誤
			// 把資料寫到before - start
			FILE *fp;
			fp = fopen("before","wb");
			fwrite(&image,1,sizeof(struct imagedata),fp);
			fclose(fp);
			// 把資料寫到before - end
			char data[MAXRECV];
			while(true)
			{
				memset(data,0,MAXRECV);
				//*server >> data;
				//::SDFile(server,"realalt180.exe");
				::SDStruct(server,(char*)&image);	// 送資料
				printf("%s\n",data);
			}
		}
		catch (SocketException &)
		{
			server->close_connfd();
			server->accept();
		}
	}
	return 0;
}
开发者ID:nightfly19,项目名称:renyang-learn,代码行数:46,代码来源:simple_server_main.cpp

示例15: main

int main ( int argc, char* argv[] )
{
	std::cout << "running....\n";
	
	try
    {
		// Create the socket
		// ServerSocket server ( 30000 );
		ServerSocket server (12354);
		
		while ( true )
		{

	  ServerSocket new_sock;
	  server.accept ( new_sock );

	  try
	    {
	      while ( true )
		{
		  std::string data;
		  new_sock >> data;
		  std::cout << data << std::endl;

		  ofstream outfile("/home/kora/桌面/log.txt", ios::app);
		  outfile << data << endl;
		  outfile.close();

		  new_sock << data;
		}
	    }
	  catch ( SocketException& ) {}

	}
    }
  catch ( SocketException& e )
    {
      std::cout << "Exception was caught:" << e.description() << "\nExiting.\n";
    }

  return 0;
}
开发者ID:kora-hacker,项目名称:shutdown_linux_with_android,代码行数:42,代码来源:simple_server_main.cpp


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