ServerSocket и ClientSocket
|
|
Qubert | Дата: Понедельник, 12.03.2012, 22:21 | Сообщение # 1 |
Частый гость
Зарегистрирован: 21.01.2012
Группа: Пользователи
Сообщений: 43
Статус: Offline
| Всем привет! есть небольшая проблемка с этими компонентами! я спрашивал у муных людей, порылся в литературе, итог: я смог приконектиться к самому себе (тоесть кинул на одну форму эти два компонента, они у меня приконнектились (указывал IP 127.0.0.1))
но сам трабл такой: пробовал подключаться к другу! спросил его IP, кинул ему сервер, клиент у меня на ПК...соединение с инетом есть!
сделал кучу мессаджов при какой-либо операции! OnConnect,onDisconnect ит.д.....в итоге ни у друга, ни у меня ничего не повляется! перерыл инет: везде примеры только на одном пк (тоесть с ип 127ит.д.)!
и самое главное в том, что, если они вообще не могут приконнектиться после запуска выдаёт ошибку типа там Assinhorus 10061 и похожие, но, когда коннектился к другу такого не было!
OnConnecting пишет что коннектиться, но ничего не выходит!
подскажите плз, буду очень благодарен (прогу сделал ради интереса САМОГО коннекта)
спасибо!
|
|
| |
Волк-1024 | Дата: Понедельник, 12.03.2012, 22:31 | Сообщение # 2 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| Он возможно сидит за NAT'ом. Прямое подключение не получится.
Pascal, C\C++, Assembler, Python
|
|
| |
Qubert | Дата: Понедельник, 12.03.2012, 23:10 | Сообщение # 3 |
Частый гость
Зарегистрирован: 21.01.2012
Группа: Пользователи
Сообщений: 43
Статус: Offline
| Доступно только для пользователей
|
|
| |
xXxSh@dowxXx | Дата: Вторник, 13.03.2012, 00:20 | Сообщение # 4 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| Эта ошибка 10061 о многом говорит, ты читал про нее в нете? возможные причины: Фаерволл, или как уже сказал Волк-1024 невозможность прямого подключения!
|
|
| |
link993 | Дата: Вторник, 13.03.2012, 07:55 | Сообщение # 5 |
Участник
Зарегистрирован: 13.02.2011
Группа: Пользователи
Сообщений: 93
Статус: Offline
| Порты проверь. У меня такая же шняга была раньше. Код на первый взгляд рабочий, но может я ошибаюсь.
|
|
| |
GReIIIHuK | Дата: Вторник, 13.03.2012, 12:11 | Сообщение # 6 |
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
| В вашем коде не указаны порты подключения. Что на сервере, то и на клиенте.
Code ServerSocket1.Port:=1234;
ClientSocket1.Port:=1234; Важно чтобы порт подключения был один и тот же.
На сервер можно сделать проще(OnClientRead): Code var s:String; begin s:=Socket.Receivetext; if s='blablabla' then showmessage(s+'ble bla blo'); Ты допустил ошибку.
Исправляем твой код: Code var Form1:TForm; i:integer; ... ... ... Server(OnClientConnect) I:=i+1; Server(OnClientDisconnect) I:=i-1;
var comd:string; begin comd:=SrvMain.Socket.Connections[i].Receivetext; if comd='mes' then begin showmessage('Received!!'); end; end;
Хотя я все равно сомневаюсь в работоспособности данного кода.
Skype:"greiiihuk." Да, я преступник. Мое преступление — любопытство. Быть может умру я, умрут многие, но идея останется жить навсегда. Я работаю не только за спасибо.(+) ©
Сообщение отредактировал GReIIIHuK - Вторник, 13.03.2012, 12:12 |
|
| |
xXxSh@dowxXx | Дата: Вторник, 13.03.2012, 13:19 | Сообщение # 7 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| Quote (GReIIIHuK) В вашем коде не указаны порты подключения. Что на сервере, то и на клиенте. может быть он порты в свойствах компонента указал?..., а вобще да..,согласен с тобой!
Сообщение отредактировал xXxSh@dowxXx - Вторник, 13.03.2012, 13:19 |
|
| |
Neo | Дата: Вторник, 13.03.2012, 15:32 | Сообщение # 8 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| У меня была такая же проблема,когда я когда-то ещё использовал компаненты.Это скорей всего баг такой.Хотя в С Bildere эти компоненты работают исправно.Лучше используй компаненты с вкладки инди.
|
|
| |
Qubert | Дата: Вторник, 13.03.2012, 19:21 | Сообщение # 9 |
Частый гость
Зарегистрирован: 21.01.2012
Группа: Пользователи
Сообщений: 43
Статус: Offline
| да уж! и вправду не работает(
первоначально я кидал другу, у которого динамический ип...потом попробовал кинуть другу, у которого он статический!
все безуспешно!
в чем же тогда ошибка в коде? и как тогда быть?)
(порты я непосредственно во вкладке указывал) точно уверен, что они не под натом (фаирвол все отключали)
спасибо за ответ!
|
|
| |
GReIIIHuK | Дата: Вторник, 13.03.2012, 20:36 | Сообщение # 10 |
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
| Вот тут можешь посмотреть пример работы на сокетах, чат не доработанный. Точнее полностью не законченный. Написал на скорую руку. Ссылка Пароль к архиву:Delfcode.ru
Skype:"greiiihuk." Да, я преступник. Мое преступление — любопытство. Быть может умру я, умрут многие, но идея останется жить навсегда. Я работаю не только за спасибо.(+) ©
Сообщение отредактировал GReIIIHuK - Вторник, 13.03.2012, 21:01 |
|
| |
Qubert | Дата: Вторник, 13.03.2012, 21:50 | Сообщение # 11 |
Частый гость
Зарегистрирован: 21.01.2012
Группа: Пользователи
Сообщений: 43
Статус: Offline
| Спасибо!
|
|
| |
dolphin | Дата: Четверг, 15.03.2012, 11:28 | Сообщение # 12 |
Администратор
Сообщений: 906
Статус: Offline
| ИМХО Не проще взять другие компоненты, например ирку, асю, мейл. Вобщем из целей надо исходить.
А что касаемо личного опыта работы с данным компонентом, то сразу говорю что не более тех испытаний что проводил Qubert, так же между 2-мя компами работать отказался на чём и были заброшены все разработки с ним.
Система: Windows 10 x64, Kali Linux Среды программирования: Delphi 7, Delphi 10.x
Я не профессионал, я всего лишь любитель Я не вредитель, я всего лишь теоретик
|
|
| |
xXxSh@dowxXx | Дата: Четверг, 15.03.2012, 12:13 | Сообщение # 13 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| как мне кажется, что бы эти стандартные компоненты нормально работали, для них нужно писать кучу исключений и возможных событий...
|
|
| |
Qubert | Дата: Четверг, 15.03.2012, 17:13 | Сообщение # 14 |
Частый гость
Зарегистрирован: 21.01.2012
Группа: Пользователи
Сообщений: 43
Статус: Offline
| Доступно только для пользователей
|
|
| |
Marra_Kesh | Дата: Четверг, 15.03.2012, 18:46 | Сообщение # 15 |
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
| Quote (Qubert) dolphin, а что за "ирка" ?) Он имел ввиду IRC
Заведующий палатой #6
|
|
| |
GReIIIHuK | Дата: Четверг, 15.03.2012, 20:48 | Сообщение # 16 |
Участник
Зарегистрирован: 15.05.2011
Группа: Пользователи
Сообщений: 98
Статус: Offline
| IRC (англ. Internet Relay Chat) — протокол прикладного уровня для обмена сообщениями в режиме реального времени. Разработан в основном для группового общения, также позволяет общаться через личные сообщения и обмениваться данными, в т.ч. файлами. IRC использует транспортный протокол TCP и криптографический TLS (опционально). IRC начало завоевывать особенную популярность после операции «Буря в пустыне» (1991), когда сообщения со всего мира собирались в одном месте и в режиме «on-line» транслировались в IRC.[1] Ввиду технической простоты реализации протокол IRC в последнее время стал использоваться при организации ботнетов в качестве средства передачи управляющих команд компьютерам-участникам ботнета от владельца.
http://ru.wikipedia.org/wiki/IRC
Skype:"greiiihuk." Да, я преступник. Мое преступление — любопытство. Быть может умру я, умрут многие, но идея останется жить навсегда. Я работаю не только за спасибо.(+) ©
|
|
| |
Qubert | Дата: Четверг, 15.03.2012, 20:58 | Сообщение # 17 |
Частый гость
Зарегистрирован: 21.01.2012
Группа: Пользователи
Сообщений: 43
Статус: Offline
| спасибо)
|
|
| |
Волк-1024 | Дата: Четверг, 15.03.2012, 22:56 | Сообщение # 18 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| Попробуй на сокетах написать.
Pascal, C\C++, Assembler, Python
|
|
| |
dolphin | Дата: Пятница, 16.03.2012, 10:52 | Сообщение # 19 |
Администратор
Сообщений: 906
Статус: Offline
| Что касаемо передачи файлов - delfcode.ru/load/iskhodniki_delphi/seti/46-1-0-230 delfcode.ru/load/iskhodniki_delphi/seti/46-1-0-252
Система: Windows 10 x64, Kali Linux Среды программирования: Delphi 7, Delphi 10.x
Я не профессионал, я всего лишь любитель Я не вредитель, я всего лишь теоретик
|
|
| |
Qubert | Дата: Воскресенье, 18.03.2012, 10:23 | Сообщение # 20 |
Частый гость
Зарегистрирован: 21.01.2012
Группа: Пользователи
Сообщений: 43
Статус: Offline
| Спасибо!
|
|
| |
teodelfix | Дата: Среда, 28.03.2012, 21:19 | Сообщение # 21 |
Частый гость
Зарегистрирован: 25.04.2011
Группа: Пользователи
Сообщений: 25
Статус: Offline
| Я как раз занимаюсь всякой херью на эту тему. Глянь исходники. мож пригодятся
|
|
| |
xXxSh@dowxXx | Дата: Четверг, 29.03.2012, 12:40 | Сообщение # 22 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| вобще какой бы исходник по сокетам сюда не выкладывали он не будет работать если чел сидит в нете через роутер или его ip находится за NAT или если провайдер мутит нет через роутер чего по идее быть не должно...,вобщем у себя сам проверил ни один пример на сокетах не пашет когда в нет захожу через роутер, так как там нада переброс портов делать, а представьте ситуацию вы написали простенький троян на сокетах, и не учли что в нете уже каласальное большинство может сидеть как раз с таким соединением и ничего естественно тут работать не будет поэтому я и говорю нада учесть при разработке проекта все варианты...
|
|
| |
Qubert | Дата: Четверг, 29.03.2012, 20:56 | Сообщение # 23 |
Частый гость
Зарегистрирован: 21.01.2012
Группа: Пользователи
Сообщений: 43
Статус: Offline
| xXxSh@dowxXx, а как можно учесть этот "переброс", что можно почитать, чтобы понять, как это сделать? или ты не мог бы объяснить?
|
|
| |
xXxSh@dowxXx | Дата: Четверг, 29.03.2012, 22:18 | Сообщение # 24 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| Quote (Qubert) а как можно учесть этот "переброс"
в том то и дело щас сам ломаю голову как бы обойти этоту проблему, ведь всяческие клиенты типа ICQ Mail.ru, Skype, они же как то нормально работают, я недавно читал одну статейку, но не особо вник, я искал что то типа "Delphi socket через роутер" в поиске много чего выдало на эту тему, разобраться бы еще...
|
|
| |
Qubert | Дата: Пятница, 30.03.2012, 14:26 | Сообщение # 25 |
Частый гость
Зарегистрирован: 21.01.2012
Группа: Пользователи
Сообщений: 43
Статус: Offline
| Доступно только для пользователей
|
|
| |