Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2013, 17:07   #1
IHaveAPussy
Новичок
Джуниор
 
Регистрация: 10.01.2013
Сообщений: 8
Сообщение Не могу найти ошибку. В логах не выдает.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var j:integer;
begin
Memo1.Lines.Add('FF');
if WSAStartup($101,D)<>0 then
            begin
Memo1.Lines.Add('WSA FAILED');
             end;

A.sin_family:=AF_INET;
A.sin_addr.S_addr:=inet_addr(PAnsiChar(Edit1.Text));
S:=socket(AF_INET,SOCK_STREAM,0);
if S=INVALID_SOCKET then
    begin
    Memo1.Lines.Add('INVALID SOCKET');
    end;

    for j:=1 to 65535 do
    A.sin_port:=htons(j);
    if connect(S,A,sizeof(A))=0 then
    Memo1.Lines.Add('Port' + inttostr(j) + 'Opened');
    end;



end.

П.С. Как сделать код удобночитаемым?

Последний раз редактировалось IHaveAPussy; 10.01.2013 в 18:17.
IHaveAPussy вне форума Ответить с цитированием
Старый 10.01.2013, 17:23   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
Как сделать код удобночитаемым?
ну как минимум пользоваться тегами [ CODE ] ... [ / CODE ] (без пробелов)

1. что есть "A" в коде ?
2. какая ошибка ?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 10.01.2013, 18:18   #3
IHaveAPussy
Новичок
Джуниор
 
Регистрация: 10.01.2013
Сообщений: 8
По умолчанию

var
Form1: TForm1; i:integer;
ip:string; port:array of string;
S:TSocket;
D:WSAData;
A:TSockAddr;
IHaveAPussy вне форума Ответить с цитированием
Старый 10.01.2013, 18:19   #4
IHaveAPussy
Новичок
Джуниор
 
Регистрация: 10.01.2013
Сообщений: 8
По умолчанию

В общем всё работает, компилируется. Только вот не показывает открытых портов.
IHaveAPussy вне форума Ответить с цитированием
Старый 10.01.2013, 18:20   #5
IHaveAPussy
Новичок
Джуниор
 
Регистрация: 10.01.2013
Сообщений: 8
По умолчанию

Memo1.Lines.Add('Port' + inttostr(j) + 'Opened');
Не показывается.
IHaveAPussy вне форума Ответить с цитированием
Старый 10.01.2013, 18:39   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

В цикле для j не хватает begin, а по окончанию блока end
Это было бы видно сразу, если бы код был нормально форматирован

Кроме того, не надо постить несколько сообщений подряд, есть кнопка правка
eoln вне форума Ответить с цитированием
Старый 10.01.2013, 18:41   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

проверка идет лишь один раз для порта 65535, который врятли открыт.

внимательнее с операторными скобками.
цикл то состоит из одной строки лишь.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.01.2013, 21:57   #8
IHaveAPussy
Новичок
Джуниор
 
Регистрация: 10.01.2013
Сообщений: 8
По умолчанию Всё равно не работает.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var j:integer;
begin
if WSAStartup($101,D)<>0 then
            begin
Memo1.Lines.Add('WSA FAILED');
             end;

A.sin_family:=AF_INET;
A.sin_addr.S_addr:=inet_addr(PAnsiChar(Edit1.Text));
S:=socket(AF_INET,SOCK_STREAM,0);
if S=INVALID_SOCKET then
    begin
    Memo1.Lines.Add('INVALID SOCKET');
    end;
    for j:=100 to 135 do
    begin
    Memo1.Lines.Add('PortChecked');
    A.sin_port:=htons(j);
    if connect(S,A,sizeof(A))=0 then
    Memo1.Lines.Add('Port ' + inttostr(j) + ' Opened');
    end;
end;

end.

Таак, всё компилируется. На отлично. Ввожу локалхост (127.0.0.1).
Вроде программа "подвисает" из-за цикла, но порты открытые не выводятся.

Последний раз редактировалось IHaveAPussy; 10.01.2013 в 22:00. Причина: Надо.
IHaveAPussy вне форума Ответить с цитированием
Старый 10.01.2013, 22:18   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а у вас они есть?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.01.2013, 23:14   #10
IHaveAPussy
Новичок
Джуниор
 
Регистрация: 10.01.2013
Сообщений: 8
По умолчанию

Да есть. 135 открыт. Проверяю обычным сканнером.
Находит порт 135, 10000, и прочие от торрента и майл.ру агента.
Я не знаю, уже и ребилд делал. Фигня какая-то.
IHaveAPussy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку 3K@BH Общие вопросы C/C++ 1 22.11.2011 10:20
Не могу разобраться в коде Проги выдает ошибку XYLIGANXYL Помощь студентам 0 27.01.2011 00:15
Не могу найти ошибку cargo29 Общие вопросы Delphi 12 15.01.2011 11:00
Выдает ошибку, не могу найти Crudelis Общие вопросы C/C++ 1 10.06.2010 22:42
Не могу найти ошибку! Эдуард Общие вопросы C/C++ 7 27.02.2008 16:34