----- Original Message ----- > From: Gies,Brad > Sent: 7/6/2006 11:35:48 AM > To: twsocket@elists.org > Subject: Re: [twsocket] FTP missing bytes > > It seems the answer is that I now have to send the Type command before I > do the PUT. Did it used to default to binary before, and now it defaults > to ASCII?
Your FTP server has probably changed to a UNIX-type environment; or if it was always UNIX, the default transfer mode has been changed. What happened to the file is that it is being transmitted in ASCII mode, and a couple of bytes have been removed when newline translations were wrongly executed. This will only be a problem when transfering between heterogenous environments with differing newline sequences (e.g. from Windows to UNIX, or from UNIX to Windows). Why? Because... 1. Windows uses a CRLF (#13#10) pair for line-ends 2. While UNIX uses only the LF (#10) character for line-ends 2. Your file, even while being binary, probably contains a contiguous pair of bytes with the sequence #13#10 in it 3. These 2-byte sequences are being (wrongly) translated to the UNIX newline character #10, and a byte is being removed. If two of these sequences exist in your file, that will cause two bytes to be removed. Since the file is binary, this in essence corrupts it. As others have mentioned, the best way to avoid this is to *always* call SetType before transmitting and never assume that the server will default to the correct type. -dZ. -- 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