Главная страница | назад





Article #19715: TClientsocket & TServerSocket

 Question and Answer Database

     FAQ: FAQ4715C - TClientsocket & TServerSocket
Category: Internet/WEB
Platform: All-32Bit
 Product: All-CBuilder,   

Question:

Why don't the Sockets receive more than 8k worth of data? 


Answer:

Because the IP layer breaks a stream of data into 8k chunks, the 
developer must explicitly insert a length integer at the 
beginning of the stream telling the receiving end how much data 
to expect, more importantly, how many 8k packets to receive.

Because the Socket components are just wrappers for the WinSock 
and not Protocols with header information (as mentioned above), 
the developer must concern themselves with said "padding" of 
data. This requires:

NOTE: The implementation can vary by the developer so this will 
remain generic.

padding the data at the source with a length integer, 
extracting the length integer at the destination, 
counting the number of bytes received at the destination 
and matching those with the length integer. 
If TotalBytesReceived != LengthInteger then know the next 
packet is a continuation, otherwise know the next packet is a 
different stream altogether.

NOTE: This is handled in HTTP & FTP protocols via header 
information (ie, 'Content\Length:').

8/4/99 11:56:05 AM
 

Last Modified: 01-SEP-99