🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #4812

Re: beetje hulp gezocht

#4812
From: Bart Vandewoestyne
Date: Mon, 14 Jul 2003 12:02
83 lines
3510 bytes
Bart Vandewoestyne wrote:
> 
> Ben momenteel bezig met het porten van mmsclient 
> (http://www.geocities.com/majormms/) naar windows.  Ik ben op een punt 
> gekomen dat ik *iets* van stream downloadt, en dat dat weggeschreven 
> wordt naar een file, maar als ik die file dan probeer te openen in 
> Windows Media Player krijg ik de boodschap dat de file corrupt is.

Bon, misschien heb ik er een idee van waar de fout zou kunnen zitten... 
volgens mij gaat het ergens fout in de get_data() methode.  In de Linux 
client ziet die er zo uit:

static int get_data (int s, char *buf, size_t count) {

   ssize_t  len, total;

   total = 0;

   while (total < count) {

     len = read (s, &buf[total], count-total);

     if (len<0) {
       perror ("read error:");
       return 0;
     }

     total += len;

     if (len != 0) {
       printf ("[%d/%d]", total, count);
       fflush (stdout);
     }

   }
   return 1;
}

Ik heb ze als volgt vertaald naar windows:

static int get_data (int s, char *buf, unsigned int count) {

   unsigned int len, total;

   total = 0;

   while (total < count) {  /* while we don't have all data yet... */

     len = recv(s, &buf[total], count-total, 0);  /* receive the rest for
						    as much as we can
						    get */

     if (len<0) {
       perror ("read error in get_data():");
       return 0;
     }

     /* increase the number indicating how much we've read */
     total += len;

     if (len != 0) {
       /* print out how much we've read already */
       printf ("[%d/%d]", total, count);
       fflush (stdout);
     }
   }
   return 1;
}

Ik vermoed dat het ergens zit in het feit dat ik die read vervangen heb 
dor een recv... en dat die parameters niet hetzelfde mogen 
ge�nterpreteerd worden... zo zou bij recv() de derde parameter de lengte 
van de buffer moemten zijn... en bij read is dat 'het aantal bytes dat 
je wil lezen'... ik zou hier vermoeden dat het in feite toch op 
hetzelfde neerkomt... maar ik zie niet in waar het fout gaat...

Ziet iemand hier iets merkwaardigs?

De volledige source staat op 
http://mc303.studentenweb.org/downloads/mmsclient/

Greetzzz,
mc -puzzled here- 303
Technical Details
Message-ID: <3F129BBF.60203@pandora.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.icl.net!newsfeed.fjserv.net!syros.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mail
References: <3F10A588.7000205@pandora.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: fcea4,fce18b96ed6a95ca
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-07-14 05:02:10 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.icl.net!newsfeed.fjserv.net!syros.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mail
From: Bart Vandewoestyne <Bart.VandewoestyneNOSPAM@pandora.be>
Newsgroups: be.comp.programming
Subject: Re: beetje hulp gezocht
Date: Mon, 14 Jul 2003 14:02:07 +0200
Organization: KULeuvenNet
Lines: 84
Message-ID: <3F129BBF.60203@pandora.be>
References: <3F10A588.7000205@pandora.be>
NNTP-Posting-Host: seven.kulnet.kuleuven.ac.be
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: naxos.belnet.be 1058184128 7358 134.58.127.12 (14 Jul 2003 12:02:08 GMT)
X-Complaints-To: abuse@belnet.be
NNTP-Posting-Date: Mon, 14 Jul 2003 12:02:08 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable
X-Accept-Language: en-us, en
Cache-Post-Path: seven.kulnet.kuleuven.ac.be!unknown@localhost
X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)