winsock HTTP передача картинки

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by black1, 7 Oct 2011.

  1. black1

    black1 New Member

    Joined:
    2 Oct 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Пытаюсь ответить на запрос браузера Received string "GET /blabla.png HTTP/1.1
    передать картинку
    int fp0 = fopen("c:\\blabla.bmp","rb");
    объединяю все через sprintf,заголовок + прочтенное( int fp0 в массив чар)
    получается не то что надо, картинка в браузере не появляется.
    какие функции использовать??
    через ReadFile? но как передать... в send(char) <-заголовок(char) <- ReadFile(DWORD?)

     
  2. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,697
    Likes Received:
    3,139
    Reputations:
    236
    ясно - идёт обмен headers, и только. картинка не появится.
    попробуй wget с тем же адресом.

    int fp0 = fopen("c:\\blabla.bmp","rb") - это совсем не нра.
    задача о курице и яйках.

    сперва получить доступ к файлу, что сомнительно, если на сайти есть кукисоны, которые просто запрещают доступ без браузера и рекламных картинок.
     
  3. black1

    black1 New Member

    Joined:
    2 Oct 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    вот чем лучше, задача прочесть файл,(картинку), передать в sendsend(*csock, char buffer, buffer_len, 0)) но передать надо заголовок + прочитанную картинку.

    не понял, "сайт" на winsock открыт 1101 порт и браузер коннект к нему
     
  4. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    некоторые сайты запрещают доступ к картинкам без своих кукисов, дабы не делалииз сайтов файловых хранилищ
     
    1 person likes this.
  5. black1

    black1 New Member

    Joined:
    2 Oct 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    отойдем от кукисов, send(*csock, charbuffer, buffer_len, 0))
    задача прочесть картинку, и отправить через send (загловок+Content(картинка))
    трабла что ну получилось браузер, получает Content: Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED)
    должно что то типа
     
    #5 black1, 7 Oct 2011
    Last edited: 7 Oct 2011
  6. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,697
    Likes Received:
    3,139
    Reputations:
    236
    Yes, Sir!

    black1, не воруй картинки. неужто не понятно?
     
  7. black1

    black1 New Member

    Joined:
    2 Oct 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    хех, проедим куки.. дело не в них 100%
    как понимаю вы имеете ввиду этакую защиту, если у вас нету таких то куки то сервер не пришлет код картинку...

    сервером отправляю пакет-сообщение на браузер, заголовок + картинка.. и браузер не может отобразить из-за? куков? что в них должно содержатся?
     
  8. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,697
    Likes Received:
    3,139
    Reputations:
    236
    лично тебе - ох же ты Олух Царя Небесного!

    не путай браузер и файло-снималко.

    всё дело в куках и ссылках на странице.
    если одна из них не открыта - то файл не загрузится.

    а что ты хотел иначе?
     
  9. black1

    black1 New Member

    Joined:
    2 Oct 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Проедим Куки..
    как сюда передать(buffer , buffer_len) HTTP Заголовок + Картинка

    if((bytecount = send(*csock, buffer, buffer_len, 0))==SOCKET_ERROR){
    fprintf(stderr, "Error sending data %d\n", WSAGetLastError());
    goto FINISH;
    }
     
  10. totenkopf

    totenkopf Elder - Старейшина

    Joined:
    19 Jul 2010
    Messages:
    91
    Likes Received:
    63
    Reputations:
    19
    Странно а где Content-Type. Может дело в этом?
     
  11. black1

    black1 New Member

    Joined:
    2 Oct 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    тоже думал
    но напортачил...передается код но не соответствует коду картинки...
     
  12. black1

    black1 New Member

    Joined:
    2 Oct 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    все спасиб всем, сделал, куки не причем терь 101% )) открывал в бинарнике, передавал буфер в sprintf :rolleyes: виноват, забыл что он по окончании строки работает '\0'