コード例 #1
0
ファイル: TrackerTest.cpp プロジェクト: mat33470/BeetTorrent
  TEST_F(TrackerTest, runTCP)
  { 
    t->_run = false;
    EXPECT_CALL(mockSocketTCP, attach())              
      .Times(1);
    EXPECT_CALL(mockSocketTCP, beginListen(1))              
      .Times(1);

    t->runTCP();
    
    Mock::VerifyAndClearExpectations(&mockSocketTCP);

    t->_run = true;

    Client * c1 = new Client(&mockSocketTCP);
    Client * c2 = new Client(&mockSocketTCP);
    
    EXPECT_CALL(mockSocketTCP, attach())              
      .Times(1);
    EXPECT_CALL(mockSocketTCP, beginListen(1))              
      .Times(1);
    EXPECT_CALL(mockSocketTCP, recvMsg(_))
      .WillOnce(Return(c1))
      .WillOnce(Return(c2))
      .WillOnce(Invoke(this,&TrackerTest::exitRunning));
    
    t->runTCP();

    EXPECT_EQ(t->_newClient.size(), 2);
  }
コード例 #2
0
ファイル: server.c プロジェクト: Oedipus/OS-Projects
int main(int argc, char *argv[])
{
    //variables
    int sockfd,newsockfd,portno,pid;
    socklen_t clilen;
    struct sockaddr_in serv_addr, cli_addr;
    if (argc < 2) {
        fprintf(stderr,"ERR: write the port number\n");
        exit(1);
    }
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0) {
       fprintf(stderr,"ERR: socket cannot be opened");
       exit(1);
    }
    bzero((char *) &serv_addr, sizeof(serv_addr));
    portno = atoi(argv[1]);
    
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = INADDR_ANY;
    serv_addr.sin_port = htons(portno);
    
    if (bind(sockfd, (struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0){
        fprintf(stderr,"ERR: cannot bind");
        exit(1);
    }
    listen(sockfd,20); //allowed 20 process
    clilen = sizeof(cli_addr);
    while (true) {
        newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen);
        if (newsockfd < 0){
           fprintf(stderr,"ERR: cannot accept");
        }
        pid = fork();
        if (pid < 0){
           fprintf(stderr,"ERR: cannot fork");
           exit(-1);
        }
        if (pid == 0)  { //child
            close(sockfd);
            beginListen(newsockfd);
            exit(0);
        }
        //Parent
        else {
            close(newsockfd);
        }
     }  
     close(sockfd);
     return 0; /* we never get here */
}