Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Sockets 
:(
    Опции темы
ceZam
Дата 23.11.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.7.2008

Репутация: нет
Всего: нет



Добрый день,
Я делаю клиент-серверное приложение. И у меня возник вопрос по вот такой ситуации:

Комп с клиентом находится в домене. А комп с сервером находится не в домене, но у обоих компов один и тот же DNS-сервер. Если клиенту говорить коннекться к такому то IP, то все отлично, но вся штука в том, что IP на компе с сервером не статичен и следовательно может меняться... Так же известны имена компов.

Я конечно же понимаю, что желательно, чтобы оба компа были в домене, но в случае с компом с сервером - это крайне не желательно.
Если у кого-то есть мысли по этому поводу - буду очень признателен.

P.S.
работаю с сокетами smile 

Это сообщение отредактировал(а) ceZam - 23.11.2009, 11:58
PM MAIL   Вверх
explorer
Дата 24.11.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 26.2.2008

Репутация: 1
Всего: 2



Самый простой вариант - брать IP сервера из файлика с настройками. Тогда уже перед запускам клиента надо будет проверить IP и поменять его в настройках. 
Также можно найти какую-нибудь утилитку, способную вернуть IP машины по её имени (но на это надежды мало, т.е. и имена иногда меняются), и заставить её передать полученный результат в свою программу. 

Еще вариантик. Сервер ведь обязан слушать какой-нибудь порт для установления связи с клиентами. Надеюсь, что у сервера хоть порт-то постоянный ;) Тогда широковещательный запрос в подсеть на предмет открытого нужного порта должен вернуть IP сервера.

Это сообщение отредактировал(а) explorer - 24.11.2009, 13:05
--------------------
 
PM MAIL WWW ICQ   Вверх
ceZam
Дата 24.11.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.7.2008

Репутация: нет
Всего: нет



Порт у сервера постоянный
Цитата

широковещательный запрос в подсеть на предмет открытого нужного порта

А не подскажешь тогда, explorer, каким образом его можно организовать???
PM MAIL   Вверх
explorer
Дата 25.11.2009, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 26.2.2008

Репутация: 1
Всего: 2



Для начала, в общих словах про вычисление адреса широковещательного запроса можно почитать здесь.

А вот примерный код
Код

using System.Net;
using System.Net.Sockets;

[STAThread]
static void Main(string[] args)
{
      Socket socket = new Socket(AddressFamily.InterNetwork,
      SocketType.Dgram, ProtocolType.Udp);
      socket.Bind(new IPEndPoint(IPAddress.Any, 8002/*номер порта, на который будут приходить ответы*/));
      socket.Connect(new IPEndPoint(IPAddress.Broadcast, 8001/*номер порта сервера*/));
      socket.Send(System.Text.ASCIIEncoding.ASCII.GetBytes("Test"));

      int availableBytes = socket.Available;
      if (availableBytes > 0)
     {
           byte[] buffer = new byte[availableBytes];
           socket.Receive(buffer, 0, availableBytes, SocketFlags.None);
     }
}


Вот как-то так.

Это сообщение отредактировал(а) explorer - 25.11.2009, 09:37
--------------------
 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.