Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
почему сканер так тормозит 17.12.01 01:16 Число просмотров: 1133
Автор: kabanchik Статус: Незарегистрированный пользователь
|
potomu chto ty sozdal "blocking socket", t.e. poka ne zavershit zapros, fig programma rabotat' budet.
t.e. pri connect(...), u tebya uxodit ujma vremeni, t.k. socket pytaetsya skonnektitsya, i mnogie porty prosto ne sushestvujut. a poka pytaetsya skonektitsya uxodit kucha vremeni - vot poetomu i tormozit vse.
hint: ispol'suj "nonblocking sockets".
udachi.
> почему программка такая тормознутая ее запускаешь а она > ноль эмоций. > и приходится очень долго ждать чтобы увидеть какой-то > результат > в чем трабл (в блокирующем connect) > #include <iostream.h> > #include <fstream.h> > #include <winsock.h> > main() > { > int err; > sockaddr_in addr; > WSADATA ws; > if(WSAStartup(0x101,)==SOCKET_ERROR) > { > cout<<"WSAStartup Error\n"; > WSACleanup(); > return 0; > } > > ofstream fout("log_scan.txt"); > SOCKET sock; > for(int i=0;i<1024;i++) > { > sock=socket(PF_INET,SOCK_STREAM,0); > if(sock==INVALID_SOCKET ) > { > cout<<"socket Error:\n"; > WSACleanup(); > fout.close(); > return 0; > } > > > addr.sin_addr.s_addr=inet_addr("195.66.204.102"); // > фуууууууу > addr.sin_port=htons(i); > addr.sin_family=AF_INET; > > > connect(sock,(sockaddr*),sizeof(addr)); > if(!=SOCKET_ERROR) > { > fout<<i<<" -- is > open\n"; > cout<<i<<" -- is > open\n"; > } > else > { > cout<<i<<" close\n"; > } > } > WSACleanup(); > fout.close(); > return 0; > }
|
|
|