Пятница, 19.04.2024, 04:49 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
delphicode » Delphi » Вопросы по Delphi » ServerSocket и ClientSocket (коннект)
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;     


Хотя я все равно сомневаюсь в работоспособности данного кода.
biggrin


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-мя компами работать отказался на чём и были заброшены все разработки с ним. biggrin


Система: 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 biggrin


Заведующий палатой #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
Я как раз занимаюсь всякой херью на эту тему. Глянь исходники. мож пригодятся
Прикрепления: chat.rar (371.8 Kb)
 
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
Доступно только для пользователей
 
delphicode » Delphi » Вопросы по Delphi » ServerSocket и ClientSocket (коннект)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz