информационная безопасность
без паники и всерьез
 подробно о проекте
За кого нас держат?Spanning Tree Protocol: недокументированное применениеАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
 Компрометация eMudhra вынудила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





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





Рейтинг@Mail.ru


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