![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 26.12.2009
Сообщений: 4
|
![]()
Есть клиент и сервер. Они работают на 8080 и 8081 порту. запускаем сервер. запускаем клиент прописываем в поле Edit IP-адрес сервера и жмем кнопку подлючится и всё суперски работает. но нужно сделать чтобы приложение клиент само находило ip адрес среди компьютеров в сети.
Где то говорили что в Delphi можно опросить сеть стандартными модулями чтобы получить список адресов, в которых искать порты. Можно прописать оригинальные номера портов чтобы достаточно однозначно определять компьютер в сети с запущеным приложением Сервер |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
Способ применим только в подсети локальной сети:
1. Сервер запускает UDP сервер 2. Клиент посылает бродкаст по заранее определенному порту. бродкаст рассылается всем в локальной сети 3. сервер отвечает на полученный бродкаст 4. клиент теперь знает где сервер
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#3 |
Регистрация: 26.12.2009
Сообщений: 4
|
![]()
А такой пример можно найти гденибудь?
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
на сервере TIdUDPServer
Код:
Не стесняемся, плюсуем!
![]() Последний раз редактировалось Slym; 19.12.2011 в 14:16. |
![]() |
![]() |
![]() |
#5 |
Регистрация: 26.12.2009
Сообщений: 4
|
![]()
а если отправлять сообщение при помощи idudpclient.broadcast('NOIZE';порт) ;
подскажите что написать в приложении сервере чтобы принять это сообщение, ответить и на машине с который был отправлен бродкаст определить ip адрес ответчика если можно в асе 433726776, моё мыло vager13@rambler.ru у меня всего несколько вопросов, я уверен не много времени отниму у вас Slim Последний раз редактировалось 32-bit; 20.12.2011 в 12:15. |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
procedure TForm1.Button2Click(Sender: TObject);
var UDPClient:TIdUDPClient; a:TIdBytes; PeerIP:string; PeerPort:word; begin UDPClient:=TIdUDPClient.Create; try UDPClient.Broadcast('Where are you?',8167); SetLength(a,1024); UDPClient.ReceiveBuffer(a,PeerIP,Pe erPort,5000); finally UDPClient.Free; end; MessageBox(0,PChar(PeerIP+':'+IntTo Str(PeerPort)), 'Я тут',ID_OK); end; на сервере procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread; AData: TIdBytes; ABinding: TIdSocketHandle); const s='I am here'; var a:TIdBytes; begin SetLength(a,length(s)); move(s[1],a[0],Length(s)); ABinding.SendTo(ABinding.PeerIP,ABi nding.PeerPort,a); end;
Не стесняемся, плюсуем!
![]() Последний раз редактировалось Slym; 20.12.2011 в 14:31. |
![]() |
![]() |
![]() |
#7 |
Регистрация: 26.12.2009
Сообщений: 4
|
![]()
большое спасибо
но делфа 7 ругается на это procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread; AData: TIdBytes; ABinding: TIdSocketHandle); IdSocketHandle я добавил в uses |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
версия инди какая? из коробки? ставь свежую
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск человека по номеру телефона | hunter03 | БД в Delphi | 4 | 31.03.2011 17:24 |
Поиск абонента по на карте номеру телефона. | sexybabeonwings | Общие вопросы Delphi | 1 | 26.09.2009 16:39 |