Не компилируется простейший сканер портов - C (СИ)
Формулировка задачи:
Доброго времени суток
подскажите плиз почему не работает (даже компилится не хочет)
#include <winsock.h> #include <stdio.h> #include <stdlib.h> #pragma comment(lib, "ws2_32") int scan(char *ip, u_short port); main(int argc, char *argv[]) { int start, end, i; char *ip; struct servent *srv; WSADATA wsd; char p_name[10] = " "; WSAStartup(0x0101, &wsd); ip = argv[1]; start = atoi(argv[2]); end = atoi(argv[3]); for(i = start; i <= end; i++) { srv = getservbyport(htons(i), "tcp"); (srv == NULL)?strcpy(p_name, "unknw"):strcpy(p_name, srv->s_name); if(scan(ip, i)) { printf("%s(%d):\t Open\n", p_name, i); } else { printf("%s(%d):\t Close\n", p_name, i); continue; } } } int scan(char *ip, u_short port) { SOCKET sd; WSADATA wsd; struct sockaddr_in loc; int res = 0; if(WSAStartup(0x0101, &wsd)) { printf("wsd error\n"); exit(1); } loc.sin_family = AF_INET; loc.sin_port = htons((u_short *)port); loc.sin_addr.s_addr = inet_addr(ip); sd = socket(AF_INET, SOCK_STREAM, 0); if(connect(sd, (struct sockaddr *)&loc, sizeof(loc))) res = 0; else { res = 1; } closesocket(sd); return res; }
VS2010 выдает ошибки
Ошибка 1 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию d:\programming\scaner ports v2\scaner ports v2\scan_ports.cpp 12 1 scaner ports v2
Ошибка 2 error C2664: htons: невозможно преобразовать параметр 1 из "u_short *" в "u_short" d:\programming\scaner ports v2\scaner ports v2\scan_ports.cpp 55 1 scaner ports v2
Решение задачи: «Не компилируется простейший сканер портов»
textual
Листинг программы
int main(int argc, char *argv[])
Объяснение кода листинга программы
- Входные данные для функции main это int argc (аргументы командной строки) и char *argv[] (строка команд).
- argc содержит количество аргументов в командной строке, а argv[] содержит эти аргументы.
- В данном случае, предполагается, что программа вызывается без аргументов, поэтому argc равно 1, и argv[0] содержит имя программы.
- В основной функции программы выполняются действия, направленные на решение задачи.
- Код программы не представлен, поэтому дальнейшие действия не могут быть описаны.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д