Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

"Asynchronous socket error 10061".   Найти похожие ветки 

 
vadim1 ©   (2006-03-23 05:08) [0]

Господа! Доброго Вам времени суток!
Заранее прошу прошения за дилетантский вопрос - но уж очень меня с ним "припекло" :)
Использую на 2-х компах ServerSocket и ClientSocket соответственно
Все плпытки установить соединение заканчиваются ошибкой "Asynchronous socket error 10061". Сколько я ни игрался с портами - результат отсутствовал Но стоило мне заменить программы установленные на компах на простенькие примерчики из Help - всё заработало на славу!
 В коде бегущем на обоих компах имеется только по одному (!) элементу ClientSocket и ServerSocket и по одному-единственному обращению к ним При этом сам код этих обращений точно такой же как  в упомянутых примерах
Что может явится причиной столь удручающего поведения ?
 Буду очень признателен за любую помощь


 
Сергей М. ©   (2006-03-23 08:06) [1]

Приведи свой вариант неработающего кода


 
vadim14   (2006-03-23 10:32) [2]

Сервер:
 procedure TForm1.FormCreate(Sender: TObject);
begin
 ServerSocket1.Port := 1001;//чёрт знает ,сколько портов перепробовал!
 ServerSocket1.Active := TRUE;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 Edit1.Text := Socket.ReceiveText;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 ServerSocket1.Close;
end;

Клиент:
procedure TForm1.FormCreate(Sender: TObject);
begin
 ClientSocket1.Port :=  23;
  ClientSocket1.Host :=  "192.168.1.5; //испробовал и имя Хоста тоже!
 ClientSocket1.Active :=  true;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 ClientSocket1.Active := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if ClientSocket1.Active then
   ClientSocket1.Socket.SendText(Edit1.Text);
end;

Казалось бы : куда уж проще?! Так вот - в чистом виде пример работает а как "довесок" к программе в которой повторяю других операций с сетью нет - НИ ВКАКАКУЮ ! :(


 
vadim14   (2006-03-23 10:38) [3]

Sorry! Что-то я с никами запутался! Был Vadim1 а стал почему-то Vadim14! :)


 
Сергей М. ©   (2006-03-23 11:06) [4]


> ClientSocket1.Port :=  23;


Почему 23-то, когда сервер на самом деле слушает на 1001-м порту ?

Св-во Port и у клиента и у сервера д.б. одинаково !


 
vadim14   (2006-03-23 12:17) [5]

Это опечатка! На самом деле в коде установки правильные,просто перед тем как послать вопрос я очередной раз их пытался менять и меня отвлекли! :) Прошу прощшения,однако проблема,к сожалению,не в этом...


 
Сергей М. ©   (2006-03-23 12:42) [6]


> vadim14   (23.03.06 12:17) [5]


Ошибка с кодом 10061 может возникнуть только в случае, если хост доступен, но целевой порт на нем не активен (не открыт).


 
Сергей М. ©   (2006-03-23 12:43) [7]

Либо если сервер отверг попытку подключения клиента, но это не твой случай.


 
vadim14   (2006-03-23 13:02) [8]

"Ошибка с кодом 10061 может возникнуть только в случае, если хост доступен, но целевой порт на нем не активен (не открыт)."

Так я же перепробовал штук 10 разных портов!
И потом в программе я больше нигде к сети не обращаюсь - то есть вроде как "забивать" порты нечем...


 
Сергей М. ©   (2006-03-23 13:19) [9]


> Так я же перепробовал штук 10 разных портов!


Да хоть 10 000 !

Еще раз повторяю : ошибку с кодом 10061 может вернуть только операция коннекта (читай описание кодов отказа ф-ции connect в справке MS WinSock2 Reference или в MSDN), и связана она именно с вышеуказанными условиями !

Ты может св-во Service где-то назначил у сервера или у клиента ?


 
Сергей М. ©   (2006-03-23 13:26) [10]


> "забивать" порты


Да и что значит "забивать" ?


 
vadim14   (2006-03-23 15:57) [11]

"Ты может св-во Service где-то назначил у сервера или у клиента "
 Да нет

"Да и что значит "забивать" ?"
Ну то есть никто их больше не использует! :)


 
Сергей М. ©   (2006-03-23 16:09) [12]


> Ну то есть никто их больше не использует


Если бы их кто-то еще использовал, попытка установить св-во ServerSocket.Active привела бы к исключению.

Раз исключения не было, значит сервер был успешно активизирован на таком-то порту.

Попробуй активировать сервер и подключиться к нему средствами стандартной telnet-консоли:

telnet open 192.168.1.5 номер_того_самого_порта

Успешное подключение в этом случае говорит о "кривизне" твоего клиента.


 
vadim1 ©   (2006-03-23 23:08) [13]

Telnet не работает,но зато приведённый пример (без собственно программы) отлично "контачит"...


 
Сергей М. ©   (2006-03-24 08:17) [14]


> приведённый пример (без собственно программы) отлично "контачит".


Ничего не понял ..

Какой такой "приведенный пример .. контачит" ? Который в [2] ?
Но ты же сам говоришь что он "не контачит" ?

Что за "собственно программа" ?

"Приведенный пример" - это что, не программа ? А что же тогда это ?!


 
vadim1 ©   (2006-03-25 21:37) [15]

Спасибо за помощь! Я уже разобрался! В программе присутствовал фрагмент который просто перегружал несчатный комп а сеть как раз и послужила индикатором
 !
А приведённый код - всего лишь маленькая добавка к этой самой самой проге,коя (добавка :) ) отлично работала - но только сама по себе :)))
Ещё раз большое спасибо!



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.013 c
2-1153027857
GelVit
2006-07-16 09:30
2006.08.06
ComboBox&TPenStyle


9-1132731553
Новенький
2005-11-23 10:39
2006.08.06
Книга Михаили Краснова по Opengl


2-1152900356
sv133
2006-07-14 22:05
2006.08.06
Программирование LPT-порта


15-1152521318
Untermensch
2006-07-10 12:48
2006.08.06
Кто нибудь встречал нормальный современный Property Editor ?


2-1152884670
Sirus
2006-07-14 17:44
2006.08.06
Замена сообщения об ошибке





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский