← →
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]
Спасибо за помощь! Я уже разобрался! В программе присутствовал фрагмент который просто перегружал несчатный комп а сеть как раз и послужила индикатором
!
А приведённый код — всего лишь маленькая добавка к этой самой самой проге,коя (добавка ) отлично работала — но только сама по себе :)))
Ещё раз большое спасибо!
|
|
|
Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] … [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.
Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.
Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка — 60 дней. Последующие попытки бан.
Мат в разделе — бан на три месяца…
Полезные ссылки: MSDN Library
FAQ раздела
Поиск по разделу
Как правильно задавать вопросы
Выразить свое отношение к модераторам раздела можно здесь: Krid,
Rouse_
Опять TClientSocket и Asynchronous socket error 10061
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Пишу клиент мелкий но надо использовать потоковые функции Надо обойти ненавистную ошибку ?когда к серверу не может достучаться Всегда помогало type=ctNonBlocking, обработчик в OnError и в конце ErrorCode:=0 но в этот раз надо писать и читать не с помощью onRead,onWrite,а стримами и соответственно type=ctNonBlocking нельзя Так вот как бы не выставлял ErrorCode:=0 все равно выскакиевает ошибка во время работы программы:( Уважаемые гуру, прошу помощи использую Delphi 2007 |
Oleg2004 |
|
Вообще то эта ошибка как бы к коду не относится Цитата WSAECONNREFUSED (10061) В подключении отказано – на хосте партнера не |
medved_68 |
|
Цитата Oleg2004 @ 15.11.07, 20:25 Вообще то эта ошибка как бы к коду не относится :
Почему? Очень даже относится. Если бы он не активировал сокет — то и такой ошибки бы не было!!! Цитата начинающий @ 15.11.07, 18:12 но в этот раз надо писать и читать не с помощью onRead,onWrite,а стримами и соответственно type=ctNonBlocking нельзя
Рекомендую посмотреть в сторону TWinSocketStream, а чтобы ошибка при коннекте не «вылазила» (если сервер не активен) — все операции на сокете заключить в блок try…except, где в секции except вызовом WSAGetLastError узнавать код ошибки, вызвавшей исключение, подавлять ее и выдавать пользователю свое сообщение (при необходимости) или предпринимать какие то другие действия. |
Oleg2004 |
|
Цитата medved_68 @ 16.11.07, 05:46 Почему? Очень даже относится.
Я бы не был столь категоричным |
medved_68 |
|
Цитата Oleg2004 @ 16.11.07, 06:27 Это ошибка на стороне партнера по сети — а не в программе Цитата Oleg2004 @ 16.11.07, 06:27 и от типа сокета, на котором работает соединение, она категорически не зависит
Спорить было бы глупо. Цитата Oleg2004 @ 16.11.07, 06:27 Я бы не был столь категоричным Цитата medved_68 @ 16.11.07, 05:46 Почему? Очень даже относится. Если бы он не активировал сокет — то и такой ошибки бы не было!!!
Сообщение отредактировано: medved_68 — 16.11.07, 06:50 |
начинающий |
|
спасибо, обыграл ситуацию с try … except … что-то типа такого Client.Address:=ServerIpCombo.Text; ServerConnection:=0; i:=0; while ((ServerConnection<>1) and (i<20)) do begin try Client.Open; ServerConnection:=1; except on Exception do begin ServerConnection:=-1; inc(i); Sleep(200); Application.ProcessMessages; end; end; end; if (ServerConnection<>1) then begin MemoLog.Lines.Add(‘No server connection’); Exit; end; |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Delphi: Сетевое программирование
- Следующая тема
[ Script execution time: 0,0349 ] [ 16 queries used ] [ Generated: 11.02.23, 22:15 GMT ]
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
1 |
|
08.11.2015, 15:47. Показов 3491. Ответов 25
На одном компе работает. Когда пытаюсь к другому компу подключится,вылезает эта ошибка.
__________________
0 |
859 / 325 / 43 Регистрация: 16.05.2014 Сообщений: 2,561 |
|
09.11.2015, 11:38 |
2 |
Проверить на этом другом, что нужный серверное приложение запущено и не заблокировано файрволом.
0 |
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
09.11.2015, 15:06 [ТС] |
3 |
xeonz, вроде,не блочит его.
0 |
2649 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,725 |
|
09.11.2015, 15:44 |
4 |
Когда пытаюсь к другому компу подключится твой клиент и сервер в одном и том же сетевом сегменте ?
0 |
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
09.11.2015, 16:12 [ТС] |
5 |
mss, хз,короче,решил проблему тем,что написал другой ip-ipv4. Вы можете назвать меня идиотом,но в оправдание могу сказать,что я ещё нуб.
0 |
2649 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,725 |
|
09.11.2015, 16:16 |
6 |
написал другой ip-ipv4 Какой «другой» ?
0 |
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
09.11.2015, 16:23 [ТС] |
7 |
mss, я ip с 2ip взял — ip прова — серый ip. Добавлено через 34 секунды
0 |
2649 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,725 |
|
09.11.2015, 16:27 |
8 |
ip прова — серый Что, «пров» вот прямо так и сказал тебе «мой ip — серый» ?)
0 |
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
09.11.2015, 18:57 [ТС] |
9 |
mss, мля,на двух компах одной вафли работает,через друга проверил — нема.
0 |
2649 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,725 |
|
09.11.2015, 19:37 |
10 |
через друга проверил Причем здесь «друг» ? Я задал простой и воплне понятный вопрос — из какого пальца ты высосал умозаключение про «ip прова — серый» ? Ты вообще понимаешь смысл этого термина ?
0 |
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
09.11.2015, 20:19 [ТС] |
11 |
mss, похожую тему где-то нашёл.
0 |
2649 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,725 |
|
09.11.2015, 20:20 |
12 |
и что ?
0 |
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
09.11.2015, 20:26 [ТС] |
13 |
mss, там подобное и прочитал
0 |
2649 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,725 |
|
09.11.2015, 20:31 |
14 |
ну-ну
0 |
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
09.11.2015, 20:35 [ТС] |
15 |
mss,можете тогда и объяснить,раз я заблуждаюсь.
0 |
2649 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,725 |
|
09.11.2015, 20:39 |
16 |
первое что ты должен сделать — это запросить у любого публичного WHOIS-сервиса инф-цию об IP-адресе, «цвет» которого тебя озаботил.
0 |
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
09.11.2015, 20:52 [ТС] |
17 |
mss, ну,а что дальше?
0 |
2649 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,725 |
|
09.11.2015, 20:56 |
18 |
ты уже сделал запрос ?
0 |
6 / 10 / 2 Регистрация: 29.05.2015 Сообщений: 661 |
|
09.11.2015, 20:57 [ТС] |
19 |
mss, да
0 |
2649 / 2270 / 279 Регистрация: 24.12.2010 Сообщений: 13,725 |
|
09.11.2015, 21:02 |
20 |
и ?
0 |
-
Скачивание файлов платно!
Купить Доступ -
язык форума русский и никакой другой! чем писать посты на английском, лучше вовсе не писать! для тех кто против, есть кнопка «Выйти»
-
Форум
-
Обсуждения работы с программаторами
-
Боксы и Программаторы
-
MRT Dongle
- Строго купля, продажа
-
Автор темы
muradx
-
Дата начала
13/6/18
M
muradx
.
- 20/3/07
- 488
- 4
- 44
-
Дагестан. Кизляр
-
13/6/18
-
#1
Автор Темы:
muradx
Приветствую всех, выходит ошибка такая , не пойму в чем дело … Win 7/64.
Л
Леонид Соломати
.
- 8/3/16
- 2
- 0
- 37
-
Каневская
-
13/6/18
-
#2
Присоединяюсь, тоже даёт такую ошибку
M
muradx
.
- 20/3/07
- 488
- 4
- 44
-
Дагестан. Кизляр
-
13/6/18
-
#3
Автор Темы:
muradx
сейчас выдает ошибку 10060
G
gkot
.
.
- 6/5/06
- 79
- 7
-
Россия, Москва
-
13/6/18
-
#4
Поменял в настройках service2 на service1. Ошибка ушла.
M
muradx
.
- 20/3/07
- 488
- 4
- 44
-
Дагестан. Кизляр
-
13/6/18
-
#5
Автор Темы:
muradx
gkot сказал(а):
Поменял в настройках service2 на service1. Ошибка ушла.
Нажмите, чтобы раскрыть…
менял я вчера , несколько раз ошибка не ушла, а ща еще раз попробовал заработал
L
LAKEY
.
- 10/6/11
- 100
- 0
-
Туркменистан,Ашгабад
-
29/8/18
-
#6
я уже миллионы раз менял сервера не хрена не помогает почему поддержка этим не занимается?
Для ответа нужно войти/зарегистрироваться
Похожие Темы
-
X
Samsung S7 Edge G935fd (0.24А, не включается)
- Автор xTwistEd
- 8/11/21
- Ответы: 5
Samsung телефоны, смартфоны — аппаратный ремонт
-
M
Вопрос Google Pixel 6a, brick, test point
- Автор m.chip
- 17/11/22
- Ответы: 10
Другие модели телефонов и планшетов
-
A
Huawei y3 ii lua-u22 не прошивается
- Автор ASDASD2020
- 26/4/21
- Ответы: 1
Huawei / Honor — прошивки и программы
-
V
ZTE Nubia Z7 mini
- Автор Voxa!
- 8/7/22
- Ответы: 0
ZTE — программный ремонт
-
L
Вопрос Xs max — ошибка батареи после того как уронили
- Автор LevAris
- 11/11/22
- Ответы: 0
iPhone X, XR, XS, XS Max
Кто читал эту тему (всего: 31)
Детально
- Ignat_som
- sponsor1977
- mk_uman
- devmapal
- Danil_DYD
- MYASSO
- alex@@
- serebriashko
- giroplan
- AlexanderI
- dronZx
- telesota7
- mr_perforator
- Nickeron
- ruric
- Cergik
- Tzar79
- Rainbow66
- savi18
- Viktor363
- mavr2001
- nark-ko
- *Илья*
- dangerfun
- Gavs
- tahnotel
- viktorup
- Tuxuu
- Santehnik
- Belij7
- uz-com
Поделиться:
Электронная почта
Ссылка
-
Форум
-
Обсуждения работы с программаторами
-
Боксы и Программаторы
-
MRT Dongle