Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

over the socket? Is there a way to have a dynamic buffer? What does one do when one does not know how much information is coming?

Answer Posted / chaitanya

When the size of the incoming data is unknown, you can either make the size of the buffer as big as the largest possible (or likely) buffer, or you can re-size the buffer on the fly during your read. When you malloc() a large buffer, most (if not all) varients of unix will only allocate address space, but not physical pages of ram. As more and more of the buffer is used, the kernel allocates physical memory. This means that malloc'ing a large buffer will not waste resources unless that memory is used, and so it is perfectly acceptable to ask for a meg of ram when you expect only a few K.

On the other hand, a more elegant solution that does not depend on the inner workings of the kernel is to use realloc() to expand the buffer as required in say 4K chunks (since 4K is the size of a page of ram on most systems). I may add something like this to sockhelp.c in the example code one day.

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Are unix sockets faster than tcp?

859


What is sae socket?

837


Why do I get EPROTO from read()?

1451


What is the difference between a socket and a port?

880


How many socket connections can a server handle?

861


What is the difference between SO_REUSEADDR and SO_REUSEPORT?

1807


What pieces of information make up a socket?

957


What does af mean in sockets?

925


Can multiple clients connect to same socket?

905


What is a socket file?

890


Whats the difference between select() and poll()?

1647


What is a socket connection?

942


How can I force a socket to send the data in its buffer?

1616


Why do we need socket programming?

877


What is the purpose of socket?

918