Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Определить адреса компов, входящих в локальную сеть

8.8K
27 октября 2005 года
dark_king
35 / / 27.10.2005
Есть проблема - клиент должен определить на каких компах в локальной сети запущен некий сервер, дабы установить - может ли энтот самый клиент к серверу обратиться. Не факт, что комп и сервер находятся в одной рабочей группе.
Вопрос!!!!!!! Так вот каким можно определить все адреса всех компов входящих в локальную сеть?????????? Или, что облегчит задачу - как послать сообщение всей сети
8.8K
02 ноября 2005 года
dark_king
35 / / 27.10.2005
Спасибо за многочисленные ответы, чтож постараюсь ответить сам. Мне нужно послать широковещательный запрос. Проблема в том, сто TCP в принципе не поддерживает бродкаст, поетому нужно действовать с UDP тут встал другой вопрос - сервер получает сообщение от клиента и посылает ответ со своими кординатами. А клиент застывает в ожидании ответа сервера и навсегда. Если кто - нибудь с этим сталкивался - не согчтите за труд ответить.
Заранее благодарен.
8.8K
04 ноября 2005 года
dark_king
35 / / 27.10.2005
Вот и хорохо, я сам во всем разобрался, и у меня все работает. На вопросы отвечу
299
04 ноября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by dark_king
Вот и хорохо, я сам во всем разобрался, и у меня все работает. На вопросы отвечу

:D :)

246
05 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by dark_king
Вот и хорохо, я сам во всем разобрался, и у меня все работает. На вопросы отвечу


Ну и как?

8.8K
06 ноября 2005 года
dark_king
35 / / 27.10.2005
Ну как? Работает, да и все тут. На поведение в критических ситуациях еще не проверял. Но обязательно буду над этим работать. Вообще это мой первый опыт с сетями, а проэкт достаточно объемный, так что работы много.
246
06 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by dark_king
Ну как? Работает, да и все тут. На поведение в критических ситуациях еще не проверял. Но обязательно буду над этим работать. Вообще это мой первый опыт с сетями, а проэкт достаточно объемный, так что работы много.


Самую суть. Ввиде кода можно?

8.8K
07 ноября 2005 года
dark_king
35 / / 27.10.2005
Цитата:
Originally posted by GIZMO
Самую суть. Ввиде кода можно?


Получай полуфабрикат.
Клиенту параметром передаешь адрес широковещ. запроса.

Код:
//Client
void dg_cli(FILE *fp, int sockfd, const SA *pservaddr, socklen_t servlen)
{
    int n;
    char    sendline[_MAX_TBUF_LEN_], recvline[_MAX_TBUF_LEN_ + 1];
  sockaddr from;
  int fromlen = sizeof(from);
  sprintf(sendline, "Message is send");
        sendto(sockfd, sendline, strlen(sendline), 0, pservaddr, servlen);

while(n>0){
        n = recvfrom(sockfd, recvline, _MAX_TBUF_LEN_, 0, &from, &fromlen);
    if(n>0){
          cout<<recvline<<"\nFrom"<<"\n";
      printf("%i.%i.%i.%i\n",(u_char)from.sa_data[2],(u_char)from.sa_data[3],(u_char)from.sa_data[4],(u_char)from.sa_data[5]);
    }
    }
}

int main(int argc, char **argv)
{
    int                 sockfd;
    struct sockaddr_in  servaddr;
  WSADATA wsaData;
  WSAStartup(0x202,&wsaData);
  timeval tv;

  tv.tv_sec=5;
  tv.tv_usec=0;

    if (argc != 2)
        Error("usage: udpcli <IPaddress>");

    memset(&servaddr, 0, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(5001);
    servaddr.sin_addr.S_un.S_addr = inet_addr(argv[1]);

    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
  int optVal=1;
      setsockopt(
        sockfd,
        SOL_SOCKET,
        SO_BROADCAST,
        (char*)&optVal,
        sizeof(int)
      );
      setsockopt(
        sockfd,
        SOL_SOCKET,
        SO_RCVTIMEO,
        (char*)&tv,
        sizeof(tv)
      );

    dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));
  getchar();
    exit(0);
}

Сервер самый обыкновенный UDP
Извини, что все в кучу, нет особо времени выбирать суть.
А вообще если интересуют сети есть книжка Стивенса "UNIX разработка сетевых приложений".
246
07 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by dark_king
Получай полуфабрикат.
...
Сервер самый обыкновенный UDP
Извини, что все в кучу, нет особо времени выбирать суть.
А вообще если интересуют сети есть книжка Стивенса "UNIX разработка сетевых приложений".


Спасибо, буду пробовать. А эл. виде книжка есть?

8.8K
09 ноября 2005 года
dark_king
35 / / 27.10.2005
Цитата:
Originally posted by GIZMO
Спасибо, буду пробовать. А эл. виде книжка есть?


Есть, но отсканирована с глюками. Так что, я думаю оно того не стоит. Но в е-нете поищи, я уверен, что найдется. По крайней мере откликов о ней полно.
Да, еще - кто-нибудь знает, есть ли у винды служба, которая отвечает на сообщения?? Что-то вроде эхо сервера. Если есть, то какой порт она слушает??

2
10 ноября 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by dark_king
Есть, но отсканирована с глюками. Так что, я думаю оно того не стоит. Но в е-нете поищи, я уверен, что найдется. По крайней мере откликов о ней полно.
Да, еще - кто-нибудь знает, есть ли у винды служба, которая отвечает на сообщения?? Что-то вроде эхо сервера. Если есть, то какой порт она слушает??


есть. стандартный echo сервер например. только надо доставить "простые службы TCP/IP" или что то в этом роде

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог