WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Передача файла через WinSock

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Передача файла через WinSock
andrewag опубликован 17-04-2001 17:23 MSK   Click Here to See the Profile for andrewag   Click Here to Email andrewag  
Люди! Как передавать файл через сокеты. Возникли затруднения: похоже, посылать можно не все символы (0..255), а только некоторые. Что посоветуете.
Спасибо
purpe опубликован 17-04-2001 17:31 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
первый раз такое слышу :)

ты б лучше описал кусочек программы, которым ты пытаешься отправить файл (функции, классы и т.д.)

OlegN опубликован 17-04-2001 17:36 MSK     Click Here to See the Profile for OlegN  Click Here to Email OlegN     
Все зависит от протокола верхнего уровня
(FTP, HTTP, SMTP), который ты будешь использовать для передачи, а через
сокеты используя TCP/IP ты передаешь/получаешь БАЙТЫ, а не символы.
andrewag опубликован 17-04-2001 17:40 MSK     Click Here to See the Profile for andrewag  Click Here to Email andrewag     
Народ! Не загоняйтесь! через recv мы получаем буффер текста, при расколбашивании которого мы и получаем эти самые БАЙТЫ.
purpe опубликован 17-04-2001 18:00 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
ну так получается, что твои символы где-то после recv пропадают :)

дальше-то ты чем обрабатываешь полученные байты ?

DEiL опубликован 17-04-2001 21:17 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
блин, лол :))
2andrewag :
вот тебе сорц, но он из MFC -
#define MAX_BUF_LEN 255
void CMySocket::OnReceive(int nErrorCode)
{
if (nErrorCode == 0)
{
char *pBuf = new char[MAX_BUF_LEN+1];
int iBufSize = 1;
int iRcvd;
CString sBuf;
iRcvd = Receive(pBuf, iBufSize);
if (iRcvd != SOCKET_ERROR)
{
pBuf[iRcvd] = NULL;
sBuf = pBuf;
// тут делай с sBuf всё, что хочешь :))
}
};
}
Demo_S опубликован 17-04-2001 21:34 MSK     Click Here to See the Profile for Demo_S  Click Here to Email Demo_S     
правильно OlegN писал 0 получаешь байты.
а если ты потом задумаешь их с строку превратить, то естественно некоторые(ноль в частности) будут интерпретированы как конец строки, и все, следующие за нулем будут потеряны.
DEiL опубликован 17-04-2001 21:35 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
надеюсь этот сорц запашет :))

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.