TCP отправка...

Тема в разделе "WASM.BEGINNERS", создана пользователем not1, 3 янв 2010.

  1. not1

    not1 Member

    Публикаций:
    0
    Регистрация:
    6 окт 2009
    Сообщения:
    137
    Привет всем!+) сабж
    Код (Text):
    1. ...
    2.  int fileSize;
    3.  fileSize=GetFileSize(hfile,NULL);
    4.  send(S,fileSize,16,0);
    cannot convert parameter 2 from 'int' to 'const char *'
    не может конвертировать...лана делаем так.
    Код (Text):
    1. send(S,(const char *)fileSize,16,0);
    на сервер приходит не то что надо а именно знак >
    функция send 2ым параметром отпровляет значение типо сhar но у меня преобразование идет... из int в сhar и не так как надо.
    соб-но мне надо отправить размер файла...
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    send у тя просит 2м параметром адрес буфера, который нужно передавать. а ты ему пихаешь число - размер файла, например 102400. соотвественно send берёт то, что находится по адресу 102400 в АП твоего процесса. и исправно передаёт какую-то хрень. :)
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    надо сделать строковый буффер и напечатать туда размер файла в символах. и отправить.
    Код (Text):
    1. char buffer[64];
    2. sprintf (buffer, "%d", fileSize);
    3. send (S, buffer, strlen(buffer), 0);
     
  5. not1

    not1 Member

    Публикаций:
    0
    Регистрация:
    6 окт 2009
    Сообщения:
    137
    спс всем) дело в том то что fileSize у меня имеет значение int а мне надо в char
    прально RamMerLabs сказал
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    not1
    Нет. Совсем не верно.
    fileSize это число. А тебе надо передать _адрес_ буффера - char* (именно со звездочкой, а не char).
    Читай учебник по языку си
     
  7. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    <offtop>
    Great
    эм...
    ты имеешь ввиду я неверно сказал или ТС не верно понял?
    если первое - то где я неправ?
    </offtop>
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    RamMerLabs
    ТС совсем не так понял, как нужно. Ну а ты все верно написал, разве что не указал, что нужно сделать, чтобы передать строку с размером)
     
  9. not1

    not1 Member

    Публикаций:
    0
    Регистрация:
    6 окт 2009
    Сообщения:
    137
    Great не подскажи те ли функцию для конверитрования числа в строку?
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _http://www.jb.man.ac.uk/~slowe/cpp/itoa.html
     
  11. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    not1
    я же дал тебе рабочий пример с sprintf. читай внимательнее. как другой вариант - itoa
     
  12. not1

    not1 Member

    Публикаций:
    0
    Регистрация:
    6 окт 2009
    Сообщения:
    137
    спасибо товарищи) все окей у мну получилось ответ кроеться куда глубже))
     
  13. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    а зачем конвертировать число в строку (и у получателя, соответственно, обратно)?

    Код (Text):
    1. send(S, &fileSize, sizeof(int), 0);
    так не удобней?
     
  14. not1

    not1 Member

    Публикаций:
    0
    Регистрация:
    6 окт 2009
    Сообщения:
    137
    rmnтак ошибка вылазеет ;)
     
  15. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    send(S, (char*)&fileSize, sizeof(int), 0);

    а так? (%
     
  16. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    ну да, конечно :)

    Код (Text):
    1. int fileSize = GetFileSize(hfile,NULL);
    2. send(S, (char*)&fileSize, sizeof(int), 0);
    и у получателя:

    Код (Text):
    1. int fileSize = 0;
    2. recv(S, (char*)&fileSize, sizeof(int), 0);
    3. // в fileSize - размер
     
  17. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    rmn
    конечно, так удобней. но неизвестно, что именно автору нужно.