Hi Rafal,
No, not a one big package. Network transmits data in its own way,
depending on many factors, like load of the network, transmission
speed etc. And surely if you sent some data in one Send() call that
does not mean that you receive the same data in one Recv() on the
other end. It may come in several calls to Recv().
There is no any EOF-like thing. It is up to you to develop a
protocol which will allow you to determine when a finalized portion
of data is received that you can start handling it. There are many
approaches to that. The most simple is that before sending a package
of data you send the size of that package, so on the other end after
receiving that size they will know how many bytes to receive for the
package. The other approach is to use text-based protocol, like XML
or JSON, so by receiving portions of it and parsing piece by piece
you will know when the main, for example, JSON object is ended and
can be handled on the receiving end.
I hope you got the idea.
Br,
Ivan