Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > передача


Автор: jofy 24.11.2008, 22:56
Здравствуйте, не подскажите, каким образом можно передать с одного компьютера на другой 3 больших массива, а именно я разложил картинку на RGB массив, теперь не знаю как его передать, буду очень признателен.

Автор: SVN74 24.11.2008, 23:39
Просто. замеряй размер массива и по несколько байт передавай в цикле, с другого стороны также принимай.

Автор: jofy 24.11.2008, 23:49
если не cложно можно кодом ^^

Автор: jonie 25.11.2008, 00:55
сходите туда: http://www.google.com/search?hl=ru&client=opera&rls=ru&hs=yvO&q=client%2Bserver%2Bsocket%2Bsample%2Bsimple%2Bc&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=

Автор: jofy 25.11.2008, 18:44
Цитата(SVN74 @ 24.11.2008,  23:39)
Просто. замеряй размер массива и по несколько байт передавай в цикле, с другого стороны также принимай.

я не давно начал писать,просьба если будет не сложно написать способ оптравки, пишу на 
VC++, массивы пока  int a[100][100] потом будет больше, т.к.  изобржение это скрин экрана а оно 1024 на 768 , заранее благодарен

Автор: SVN74 25.11.2008, 23:02
Цитата(jofy @  25.11.2008,  18:44 Найти цитируемый пост)
я не давно начал писать,просьба если будет не сложно написать способ оптравки, пишу на 
VC++, массивы пока  int a[100][100] потом будет больше, т.к.  изобржение это скрин экрана а оно 1024 на 768 , заранее благодарен 

Ну к примеру вот огрызок кода пересылки большого размера данных в виде массива структур:
MyInfo - это массив структур
cm - общий размер пересылаемых данных.
send(cl.Socket,(char*)&MyInfo[0],cm,0);
=============================
на приемке надо к примеру так:

int BigRecieve(SOCKET sck, char *RecivedData, int SizeOfData)
{
 int X=0,rc;
     while(X<SizeOfData)
     {
       rc=recv(sck,&RecivedData[0]+X,SizeOfData-X,0);
       if(rc<0) return  rc;
       X+=rc;
     }
 return X;
}
----------------------------------
главное, чтобы принимающий блок заранее знал будущий размер данных.



Автор: jofy 25.11.2008, 23:48
огромное спасибо 

Автор: J0ker 29.11.2008, 02:18
Цитата(SVN74 @  25.11.2008,  23:02 Найти цитируемый пост)
int BigRecieve(SOCKET sck, char *RecivedData, int SizeOfData)


Цитата(SVN74 @  25.11.2008,  23:02 Найти цитируемый пост)
rc=recv(sck,&RecivedData[0]+X,SizeOfData-X,0);

а вам не кажется, что &RecivedData[0] несколько redundant?  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)