Модераторы: feodorv

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> flap пакет 
:(
    Опции темы
Nikita0007
Дата 20.5.2010, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ребят а можно создать пакет таким образом:
Код

typedef struct TLV
   {
   unsigned short int Type;
   unsigned short int Lenght;
   char* value;
   }TLV;
      typedef struct TLV
   {
   unsigned short int Type;
   unsigned short int Lenght;
   char* value;
   }TLVV;    
   typedef struct FLAP_HDR
{
     unsigned char       Sign;
     unsigned char       ChID;
     unsigned short int  SEQ;
     unsigned short int  Len;
     unsigned long word;
     TLV t1;
     TLV t2;
     TLV t3;
     TLVV t4;
     TLVV t5;
     TLVV t6;
     TLVV t7;
     TLVV t8;
     TLVV t9;
     TLV t10;
     TLV t11;

}FLAP;
FLAP CreatePacket(unsigned char ChID,unsigned short int SEQ)
{
FLAP flap;
flap.Sign=0x2A;
flap.ChID=ChID;
flap.SEQ=SEQ;
flap.Len=96;
flap.word=htonl(1);
flap.t1.Type=htons(1);
flap.t1.Lenght=htons(9);
flap.t1.value="495631328";
flap.t2.Type=htons(2);
flap.t2.Lenght=htons(6);
flap.t2.value="12345678";
flap.t3.Type=htons(3);
flap.t3.Lenght=htons(10);
flap.t3.value="5";
flap.t4.Type=htons(23);
flap.t4.Lenght=htons(2);
flap.t4.value=htons("6");
flap.t5.Type=htons(24);
flap.t5.Lenght=htons(2);
flap.t5.value=htons("5");
flap.t6.Type=htons(25);
flap.t6.Lenght=htons(2);
flap.t6.value=htons("0");
flap.t7.Type=htons(26);
flap.t7.Lenght=htons(2);
flap.t7.value=htons("2024");
flap.t8.Type=htons(22);
flap.t8.Lenght=htons(2);
flap.t8.value="Unknow";
flap.t9.Type=htons(20);
flap.t9.Lenght=htons(4);
flap.t9.value=htons(30007);
flap.t10.Type=htons(15);
flap.t10.Lenght=htons(2);
flap.t10.value="ru";
flap.t11.Type=htons(14);
flap.t11.Lenght=htons(2);
flap.t11.value="ru";
return flap;
}

если есть ошибки то подскажите где.
PM MAIL   Вверх
SVN74
Дата 20.5.2010, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 5.5.2008
Где: Комсомольск на Дн епре

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



Цитата(Nikita0007 @  20.5.2010,  17:24 Найти цитируемый пост)
typedef struct TLV
   {
   unsigned short int Type;
   unsigned short int Lenght;
   char  value[10];  //заменить
   }TLV;

Если структуру надо переслать, то указатели ничего не передадут...

PM MAIL WWW   Вверх
Nikita0007
Дата 20.5.2010, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ну а остальное все нормально или нет
PM MAIL   Вверх
Nikita0007
Дата 25.5.2010, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ребят а как исправить ошибку
32 C:\Dev-Cpp\icq\main.cpp [Warning] cast from pointer to integer of different size 
и 
58 C:\Dev-Cpp\icq\main.cpp [Warning] cast from pointer to integer of different size 
вот в этом коде:
Код

#include <cstdlib>
#include <iostream>
#include <vector>
#include<winsock2.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void TLV_Pack_UIN(unsigned short int Type,char Data,vector<char>pck)
{
unsigned short int tlv_type=htons(Type);
char tlv_data=Data;
int l=strlen(&Data);
unsigned short int tlv_lenght=htons(l);
pck.push_back((char)tlv_type);
pck.push_back((char)tlv_lenght);
pck.push_back(tlv_data);
}
void TLV_Pack_Pass(unsigned short int Type,char*pwd,vector<char>pck)
{
 char pass_xor[]="\xF3\x26\x81\xC4\x39\x86\xDB\x92\x71"
                        "\xA3\xB9\xE6\x53\x7A\x95\x7C";
   for (int x = 0;x < strlen(pwd);x ++)
                {
                pwd[x] = pwd[x]^pass_xor[x];
                }
   
 unsigned short int tlv_type=htons(Type);
 int l=strlen(pwd);
 unsigned short int tlv_lenght=htons(l);
pck.push_back((char)tlv_type);
pck.push_back((char)tlv_lenght);
pck.push_back((char)pwd);
}
void TLV_Pack_2(unsigned short int Type,unsigned short int Data,vector<char>pck)
{
unsigned short int tlv_type=htons(Type);
unsigned short int tlv_lenght=htons(2);
unsigned short int tlv_data=htons(Data);
pck.push_back((char)tlv_type);
pck.push_back((char)tlv_lenght);
pck.push_back((char)tlv_data);
}
void TLV_Pack_4(unsigned short int Type,unsigned long Data,vector<char>pck)
{
unsigned short int tlv_type=htons(Type);
unsigned short int tlv_lenght=htons(4);
unsigned short int tlv_data=htonl(Data);
pck.push_back((char)tlv_type);
pck.push_back((char)tlv_lenght);
pck.push_back((char)tlv_data);
}
void Flap_HDR(char ChID,unsigned short int SEQ,vector<char>pck)
{
char Sign[]="\x2A";
char channel=ChID;
unsigned short int seq_num=htons(SEQ);
unsigned short int lenght=htons(21);
pck.push_back((char)Sign);
pck.push_back(channel);
pck.push_back((char)seq_num);
pck.push_back((char)lenght);
}

int main(int argc, char *argv[])
{
vector<char>pack;
unsigned short int r;
unsigned long data;    
    char buf[1024];
    int rc=NO_ERROR;
    int i;
    SOCKET NewSocket;
    SOCKADDR_IN rmaddr;
    WSADATA wsa;
    int err,error;
    char s[10];
    i=0;
    err=WSAStartup(MAKEWORD(2,2), &wsa);
    if (err!=0)
    {printf("oshibka\n");
    _getch();
}
    else
 {printf("biblioteka zagruzhena\n");
 _getch();
        }
    NewSocket = socket (AF_INET,SOCK_STREAM,IPPROTO_TCP);
    rmaddr.sin_addr.s_addr = inet_addr("205.188.7.244");
    rmaddr.sin_family = AF_INET;
    rmaddr.sin_port = htons(5190);
if(connect(NewSocket,(struct sockaddr *)&rmaddr,sizeof(rmaddr))==SOCKET_ERROR)
{
printf("oshibka");
_getch();
}
else
{
printf("connect\n");
_getch();
}
rc = recv(NewSocket, buf,6, 0); 
if(rc<=0)
  {
  printf("oshibka vizova");        
   closesocket(NewSocket);
   WSACleanup();
   return EXIT_FAILURE;
  }
  else
  {
  printf("da");
  }
    r=buf[3];
    printf("%d",r);
rc = recv(NewSocket, buf,r, 0); 
if(rc<=0)
  {
  printf("oshibka vizova");        
   closesocket(NewSocket);
   WSACleanup();
   return EXIT_FAILURE;
  }
  else
  {
  printf("da");
  }
  Flap_HDR(1,0,pack);
  data=htonl(1);
  pack.push_back((char)data);
  TLV_Pack_UIN(1,495631328,pack);
  TLV_Pack_Pass(2,"12345678",pack);
  error=send(NewSocket,(const char*)&pack,21,0);
    if(SOCKET_ERROR==error)
    {
    printf("oshibka");
    _getch();
    closesocket(NewSocket);
    WSACleanup();
    return EXIT_FAILURE;
}
    else
    {
    printf("otpravil");
    }
    rc = recv(NewSocket, buf,6, 0); 
if(rc<=0)
  {
  printf("oshibka vizova");        
   closesocket(NewSocket);
   WSACleanup();
   return EXIT_FAILURE;
  }
  else
  {
  printf("da");
  }
    
    closesocket(NewSocket);
}



Это сообщение отредактировал(а) Nikita0007 - 25.5.2010, 16:42
PM MAIL   Вверх
boostcoder
Дата 26.5.2010, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(Nikita0007 @  25.5.2010,  16:40 Найти цитируемый пост)
pck.push_back((char)pwd);

"pck" является контейнером, хранящим char-ы. я ты в него пытаешься впихнуть указатель на char-ы.
в обоих случаях.
PM WWW   Вверх
Nikita0007
Дата 26.5.2010, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А, сейчас попробую. Boostcoder а ты не мог бы дать свою icq ну что бы с тобой связаться.
PM MAIL   Вверх
Nikita0007
Дата 26.5.2010, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите пожалуйста почему при выполнении функции:
Код

void TLV_Pack_Pass(unsigned short int Type,char*pwd,vector<char>pck)
{
 int i;
 char pass_xor[]="\xF3\x26\x81\xC4\x39\x86\xDB\x92\x71"
                        "\xA3\xB9\xE6\x53\x7A\x95\x7C";
   for (int x = 0;x < strlen(pwd);x++)
                {
                pwd[x] = pwd[x]^pass_xor[x];
                }
   
 unsigned short int tlv_type=htons(Type);
 int l=strlen(pwd);
 unsigned short int tlv_lenght=htons(l);
pck.push_back((char)tlv_type);
pck.push_back((char)tlv_lenght);
for (i=0;i<=6;i++)
pck.push_back(pwd[i]);
}

у меня программа вылетает.
Помогите пожалуйста.
PM MAIL   Вверх
boostcoder
Дата 26.5.2010, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



возможно из-за того, что длина "pass_xor" меньше чем длина "pwd".
еще, после выражения "pwd[x] = pwd[x]^pass_xor[x];", содержимое "pwd" может не попадать под значения текстовой кодировки, и выражение "strlen(pwd)" может давать непредсказуемый результат.

Цитата(Nikita0007 @  26.5.2010,  07:06 Найти цитируемый пост)
Boostcoder а ты не мог бы дать свою icq

нет.


Это сообщение отредактировал(а) boostcoder - 26.5.2010, 12:08
PM WWW   Вверх
Nikita0007
Дата 26.5.2010, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Помогите пожалуйста. Подскажите почему когда я отправляю пакет серверу ответа от него я не получаю. Вот код:
Код

#include <cstdlib>
#include <iostream>
#include <vector>
#include<winsock2.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void TLV_Pack_UIN(unsigned short int Type,char *Data,vector<char>pck)
{
int i;
unsigned short int tlv_type=htons(Type);
int l=strlen(Data);
unsigned short int tlv_lenght=htons(l);
pck.push_back((char)tlv_type);
pck.push_back((char)tlv_lenght);
for(i=0;i<=9;i++)
pck.push_back(Data[i]);
}
void TLV_Pack_Pass(unsigned short int Type,char*pwd,vector<char>pck)
{
 int i;
 char pass_xor[]="\xF3\x26\x81\xC4\x39\x86\xDB\x92\x71"
                        "\xA3\xB9\xE6\x53\x7A\x95\x7C";
   for (int x = 0;x < strlen(pwd);x++)
                {
                pwd[x] = pwd[x]^pass_xor[x];
                }
   
 unsigned short int tlv_type=htons(Type);
 int l=strlen(pwd);
 unsigned short int tlv_lenght=htons(l);
pck.push_back((char)tlv_type);
pck.push_back((char)tlv_lenght);
for (i=0;i<=6;i++)
pck.push_back(pwd[i]);
}
void TLV_Pack_2(unsigned short int Type,unsigned short int Data,vector<char>pck)
{
unsigned short int tlv_type=htons(Type);
unsigned short int tlv_lenght=htons(2);
unsigned short int tlv_data=htons(Data);
pck.push_back((char)tlv_type);
pck.push_back((char)tlv_lenght);
pck.push_back((char)tlv_data);
}
void TLV_Pack_4(unsigned short int Type,unsigned long Data,vector<char>pck)
{
unsigned short int tlv_type=htons(Type);
unsigned short int tlv_lenght=htons(4);
unsigned short int tlv_data=htonl(Data);
pck.push_back((char)tlv_type);
pck.push_back((char)tlv_lenght);
pck.push_back((char)tlv_data);
}
void Flap_HDR(char* ChID,unsigned short int SEQ,vector<char>pck)
{
char Sign[]="\x2A";
unsigned short int seq_num=htons(SEQ);
unsigned short int lenght=htons(48);
pck.push_back(Sign[0]);
pck.push_back(ChID[0]);
pck.push_back((char)seq_num);
pck.push_back((char)lenght);
}

int main(int argc, char *argv[])
{
vector<char>pack;
unsigned short int r;
unsigned long data;    
    char buf[1024];
    int rc=NO_ERROR;
    int i;
    SOCKET NewSocket;
    SOCKADDR_IN rmaddr;
    WSADATA wsa;
    int err,error;
    char s[10];
    i=0;
    err=WSAStartup(MAKEWORD(2,2), &wsa);
    if (err!=0)
    {printf("oshibka\n");
    _getch();
}
    else
 {printf("biblioteka zagruzhena\n");
 _getch();
        }
    NewSocket = socket (AF_INET,SOCK_STREAM,IPPROTO_TCP);
    rmaddr.sin_addr.s_addr = inet_addr("205.188.7.244");
    rmaddr.sin_family = AF_INET;
    rmaddr.sin_port = htons(5190);
if(connect(NewSocket,(struct sockaddr *)&rmaddr,sizeof(rmaddr))==SOCKET_ERROR)
{
printf("oshibka");
_getch();
}
else
{
printf("connect\n");
_getch();
}
rc = recv(NewSocket, buf,6, 0); 
if(rc<=0)
  {
  printf("oshibka vizova");        
   closesocket(NewSocket);
   WSACleanup();
   return EXIT_FAILURE;
  }
  else
  {
  printf("da");
  }
    r=buf[3];
    printf("%d",r);
rc = recv(NewSocket, buf,r, 0); 
if(rc<=0)
  {
  printf("oshibka vizova");        
   closesocket(NewSocket);
   WSACleanup();
   return EXIT_FAILURE;
  }
  else
  {
  printf("da");
  }
  Flap_HDR("1",0,pack);
  data=htonl(1);
  pack.push_back((char)data);
  TLV_Pack_UIN(1,"495631328",pack);
  char pass[] = "Stanin";
  TLV_Pack_Pass(2, pass, pack);
unsigned short int tlv_type=htons(3);
unsigned short int tlv_lenght=htons(10);
char* Data;
Data="ICQ Client";
pack.push_back((char)tlv_type);
pack.push_back((char)tlv_lenght);
for(int i=0;i<=10;i++)
pack.push_back(Data[i]);
tlv_type=htons(22);
tlv_lenght=htons(2);
char da[]="\x01\x0a";
pack.push_back((char)tlv_type);
pack.push_back((char)tlv_lenght);
for(i=0;i<=1;i++)
pack.push_back(da[i]);
TLV_Pack_2(23,6,pack);
TLV_Pack_2(24,5,pack);
TLV_Pack_2(25,0,pack);
TLV_Pack_2(26,104,pack);
TLV_Pack_4(20,30007,pack);
tlv_type=htons(15);
tlv_lenght=htons(2);
char d[]="ru";
for(i=0;i<2;i++)
pack.push_back(d[i]);
tlv_type=htons(14);
tlv_lenght=htons(2);
char dd[]="ru";
for(i=0;i<2;i++)
pack.push_back(dd[i]);
error=send(NewSocket,(const char*)&pack,htons(48),0);
    if(SOCKET_ERROR==error)
    {
    printf("oshibka");
    _getch();
    closesocket(NewSocket);
    WSACleanup();
    return EXIT_FAILURE;
}
    else
    {
    printf("otpravil");
    _getch();
    }
    rc = recv(NewSocket, buf,6, 0); 
if(rc<=0)
  {
  printf("oshibka vizova");        
   closesocket(NewSocket);
   WSACleanup();
   return EXIT_FAILURE;
  }
  else
  {
  printf("da");
  }
    r=buf[3];
    printf("%d",r);
rc = recv(NewSocket, buf,r, 0); 
if(rc<=0)
  {
  printf("oshibka vizova");        
   closesocket(NewSocket);
   WSACleanup();
   return EXIT_FAILURE;
  }
  else
  {
  printf("da");
  _getch();
  }
    closesocket(NewSocket);
}


PM MAIL   Вверх
boostcoder
Дата 26.5.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



я вижу, ты решил, сам пакет формировать.
дай хотя бы ссылку на RFC.
PM WWW   Вверх
Nikita0007
Дата 27.5.2010, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А что такое RFC
PM MAIL   Вверх
boostcoder
Дата 27.5.2010, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(Nikita0007 @  27.5.2010,  10:32 Найти цитируемый пост)
А что такое RFC 

это документ, описывающий правило/стандарт/соглашение.
PM WWW   Вверх
Nikita0007
Дата 27.5.2010, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ну всмысле это ссылку на описание протокола той версии на которую я хочу сделать реализацию
PM MAIL   Вверх
boostcoder
Дата 27.5.2010, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(Nikita0007 @  27.5.2010,  13:33 Найти цитируемый пост)
ну всмысле это ссылку на описание протокола той версии на которую я хочу сделать реализацию 

если это вопрос - то да ;)
PM WWW   Вверх
Nikita0007
Дата 27.5.2010, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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