est-ce que je peut le faire aussi du coté Client ? udpClient->Proto = "udp"; udpClient->Port = 6001; udpClient->Addr = "0.0.0.0";
int32_t size; size = 65535; udpClient->Listen(); udpClient->BufSize = 65535; setsockopt(udpClient->HSocket, SOL_SOCKET , SO_RCVBUF, (const char *)&size, sizeof(size)); ????? Jonathan ----- Original Message ----- From: "Francois PIETTE" <[EMAIL PROTECTED]> To: "ICS support mailing" <[email protected]> Sent: Wednesday, January 31, 2007 12:13 PM Subject: Re: [twsocket] streaming video client/server application > > You should also set TWSocket own buffer size (Default to 1460). > frmTestCarteDSPR->udpServer->BufSize = 65536; > >> maxlength = udpClient->RcvdCount; > > Do not rely on RcvdCount which - as Microsoft said - is not always > accurate. > Just receive as much data as you can into your buffer. Normally since UDP > is > a datagram service, you'll get complete datagrams at once. > > PS: On peut aussi me joindre sur le forum > news://news.delphinaute.be/delphi > -- > Participez à l'effort SSL pour ICS. Visitez > http://www.overbyte.be/eng/ssl.html > -- > [EMAIL PROTECTED] > Auteur du freeware ICS - Internet Component Suite > Auteur du middleware multi-tiers MidWare > http://www.overbyte.be > > > ----- Original Message ----- > From: "Jonathan Dumaresq" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Wednesday, January 31, 2007 5:13 PM > Subject: [twsocket] streaming video client/server application > > >> HI, >> >> I try to make a streaming video client server application using thr >> TWsocket component. >> >> I think i have some probleme with handling all the data that is comming >> on >> the client part. On my server part, I have a callback function that if >> fired as soon as i have a video frame is ready. this card is a mpeg4 >> compressor card, so the data fram is variable. From 248 bytes to 30K or >> 40K. So I send it in UDP. This server is a multi streaming server I can >> stream up to 4 channel. since i have only 1 callback for all the channel >> i >> can't do it in a thread (i think). So i do this every thime i received a >> frame: >> >> I have put a TWsocket on the form. >> >> frmTestCarteDSPR->udpServer->Proto = "udp"; >> frmTestCarteDSPR->udpServer->Addr = >> frmTestCarteDSPR->infoConnection[channelNum].ipAddr; // ip addr to the >> remote host >> frmTestCarteDSPR->udpServer->Port = >> frmTestCarteDSPR->infoConnection[channelNum].ipPort; // remote port >> frmTestCarteDSPR->udpServer->Connect(); >> size = 65535; >> setsockopt(frmTestCarteDSPR->udpServer->HSocket, SOL_SOCKET , >> SO_SNDBUF, >> (const char *)&size, sizeof(size)); // change the socket buffer to 65535 >> frmTestCarteDSPR->udpServer->Send((unsigned char *)DataBuf,Length); // >> send data >> frmTestCarteDSPR->udpServer->Close(); // close the socket >> >> I would like to know if this is a good way of doing it ??? is ther a >> simple way or a better way of doing this ? >> >> >> on the client part, i do this in the udpClientDataAvailable >> >> maxlength = udpClient->RcvdCount; >> //debugStream << "data received = " << maxlength << endl; >> frame = new uint8_t[maxlength]; >> while(byteread < maxlength) >> { >> Len = udpClient->Receive(&frame[byteread],1460); >> byteread += Len; >> } >> // I continue the job for displaying the video. >> >> is there a better way of doing this ? is it possible to receive all the >> data without looping ? >> >> regards >> >> Jonathan >> >> -- >> To unsubscribe or change your settings for TWSocket mailing list >> please goto http://www.elists.org/mailman/listinfo/twsocket >> Visit our website at http://www.overbyte.be > > -- > To unsubscribe or change your settings for TWSocket mailing list > please goto http://www.elists.org/mailman/listinfo/twsocket > Visit our website at http://www.overbyte.be > -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
