информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Помогите найти ошибку (внутри) 14.07.01 01:30  Число просмотров: 701
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>

обрати внимание на - ^^^^^^^

> Вроде всё правильно, но нефига не шлёт пакет:
>
> SOCKET sock;
> sockaddr_in in,out;
> ///////////////////////////////////////////////////////////
> /
> char buf[10];
> for (int i=1;i<=10; i++)
> buf[i - 1]='a'+i-1;
> ///////////////////////////////////////////////////////////
> /
> memset(&in, 0, sizeof(sockaddr_in));
> memset(&out, 0, sizeof(sockaddr_in));
> ///////////////////////////////////////////////////////////
> /
> in.sin_family = AF_INET;
> in.sin_addr.s_addr = htonl(INADDR_ANY);//MY_ADDR);
> in.sin_port = htons(80);
>
> out.sin_family = AF_INET;
> out.sin_addr.s_addr = inet_addr("195.34.32.11");
> out.sin_port = htons(80);
> ///////////////////////////////////////////////////////////
> /
> sock = socket(AF_INET,SOCK_DGRAM,0);
> ///////////////////////////////////////////////////////////
> /
> bind(sock,((sockaddr*)(&in)),sizeof(in));
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
во-первых это не к чему
во-вторых не понятны твои действия, потому как ты тут пытаешься связать сокет с несуществующим IP адресом - 255.255.255.255
либо закомментируй эту строку, либо связывай с настоящим IP
а если ты хочешь сделать broadcast, то пиши так
out.sin_addr.s_addr = htol(INADDR_ANY); тогда пакет будет послан просто всем тем кто ожидает.
> ///////////////////////////////////////////////////////////
> sendto(sock, buf, 10, 0, ((sockaddr*)(&out)), sizeof(out));


твой код уместен, если ты вместо sendto используешь recvfrom, т.е. если у тебя серверная часть или конкретно если ты намерен подбирать все UDP пакеты в сетке.
в добавок советую всегда проверять на == SOCKET_ERROR; если такое происходит вызывай WSAGetLastError(); он тебе больше подскажет о возникшей проблеме.
<programming>
Помогите найти ошибку (внутри) 14.07.01 00:06  
Автор: Access Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Вроде всё правильно, но нефига не шлёт пакет:

SOCKET sock;
sockaddr_in in,out;
////////////////////////////////////////////////////////////
char buf[10];
for (int i=1;i<=10; i++)
buf[i - 1]='a'+i-1;
////////////////////////////////////////////////////////////
memset(&in, 0, sizeof(sockaddr_in));
memset(&out, 0, sizeof(sockaddr_in));
////////////////////////////////////////////////////////////
in.sin_family = AF_INET;
in.sin_addr.s_addr = htonl(INADDR_ANY);//MY_ADDR);
in.sin_port = htons(80);

out.sin_family = AF_INET;
out.sin_addr.s_addr = inet_addr("195.34.32.11");
out.sin_port = htons(80);
////////////////////////////////////////////////////////////
sock = socket(AF_INET,SOCK_DGRAM,0);
////////////////////////////////////////////////////////////
bind(sock,((sockaddr*)(&in)),sizeof(in));
///////////////////////////////////////////////////////////
sendto(sock, buf, 10, 0, ((sockaddr*)(&out)), sizeof(out));
Помогите найти ошибку (внутри) 14.07.01 01:30  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>

обрати внимание на - ^^^^^^^

> Вроде всё правильно, но нефига не шлёт пакет:
>
> SOCKET sock;
> sockaddr_in in,out;
> ///////////////////////////////////////////////////////////
> /
> char buf[10];
> for (int i=1;i<=10; i++)
> buf[i - 1]='a'+i-1;
> ///////////////////////////////////////////////////////////
> /
> memset(&in, 0, sizeof(sockaddr_in));
> memset(&out, 0, sizeof(sockaddr_in));
> ///////////////////////////////////////////////////////////
> /
> in.sin_family = AF_INET;
> in.sin_addr.s_addr = htonl(INADDR_ANY);//MY_ADDR);
> in.sin_port = htons(80);
>
> out.sin_family = AF_INET;
> out.sin_addr.s_addr = inet_addr("195.34.32.11");
> out.sin_port = htons(80);
> ///////////////////////////////////////////////////////////
> /
> sock = socket(AF_INET,SOCK_DGRAM,0);
> ///////////////////////////////////////////////////////////
> /
> bind(sock,((sockaddr*)(&in)),sizeof(in));
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
во-первых это не к чему
во-вторых не понятны твои действия, потому как ты тут пытаешься связать сокет с несуществующим IP адресом - 255.255.255.255
либо закомментируй эту строку, либо связывай с настоящим IP
а если ты хочешь сделать broadcast, то пиши так
out.sin_addr.s_addr = htol(INADDR_ANY); тогда пакет будет послан просто всем тем кто ожидает.
> ///////////////////////////////////////////////////////////
> sendto(sock, buf, 10, 0, ((sockaddr*)(&out)), sizeof(out));


твой код уместен, если ты вместо sendto используешь recvfrom, т.е. если у тебя серверная часть или конкретно если ты намерен подбирать все UDP пакеты в сетке.
в добавок советую всегда проверять на == SOCKET_ERROR; если такое происходит вызывай WSAGetLastError(); он тебе больше подскажет о возникшей проблеме.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach