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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как передать данные большого размера 
:(
    Опции темы
Vik
  Дата 23.8.2004, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пробую переслать данные точнее изображение с экрана
по протоколу TCP

Код
send_result = send(Aplied->client,  
               (char*)(Aplied->_point),
sizeof(Aplied->_point),
               0);

if (send_result == SOCKET_ERROR){
exit(1);
}
if (send_result != sizeof(Aplied->_point)){

              exit(1);
}




данный код работает нормально и send возвращяет столько байт сколько нужно
Цитата
sizeof(Aplied->_point)
равен 2359296 байт


а мой клиент когда побучает данные

Код
while (1){
 
 nbytes = recv(sd, buffer, sizeof(buffer), 0);
 if (nbytes == SOCKET_ERROR){
  printf("SOCKET_ERROR\n");
 }
 if (nbytes == 2359296){
  printf("Error\n");
 }
 else
 
}


возвращает количество полученных байт всего 4

и ничего не могу поделать.

Как я вычитал протокол ТСР передает данные в виде потока
не ограниченного размера.

Обьясните ктонибудь что я не так делаю???

Зарание благодарю.


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


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

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



к сожалению телепатов мало, и язык на котором написана программа лучше упоменуть!


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
MuToGeN
Дата 24.8.2004, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

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



Очевидно С++, только что такое Aplied - неизвестно.


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
RA
Дата 7.9.2004, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

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



Цитата
Как передать данные большого размера

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


Бывалый
*


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

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



знаешь , это довольно странно...
Код

send_result = send(Aplied->client,  
              (char*)(Aplied->_point),
sizeof(Aplied->_point),
              0);


получается , что Aplied->_point , это указатель , т.к. 2-м аргументом должен идти указатель на буфер , а
sizeof(Aplied->_point) должен быть равен размеру указателя..

а
Код

char *Chislo;//сдесь можено и не char , а любой другой тип.
printf("%d",sizeof(Chislo));

_getche();

как раз вернет заветные 4 байта!!!

тебе нада
Код

send_result = send(Aplied->client,  
              (char*)(Aplied->_point),
sizeof(*(Aplied->_point)),
              0);


Это сообщение отредактировал(а) LuckLess - 15.9.2004, 21:17
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Сетевые технологии | Следующая тема »


 




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


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

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