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





Article #17310: TClientSocket and TServerSocket

 Question and Answer Database
FAQ2310D.txt — TClientSocket and TServerSocket
Category :Internet/WEB
Platform :All-32Bit
Product :
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:').
4/2/99 11:47:55 AM

Last Modified: 01-SEP-99