If Socket
represents client side and ServerSocket
represents server side, why Socket.read
reads the data from server side? I\'m really con
Because it's reading what has been sent to you by the server.
ServerSocket
is created to bind
to a port and listen
for a connect
from a client. So, a server just waits for a conversation and doesn't start one.
ClientSocket
is created to connect
to a listen
ing server. The client initiates the connection.
Example: Think of an inbound call center as an example. These services are servers. They don't initiate a call but wait for a call to come in from clients. Once the calls are in, they can engage in a two way conversation.
why socket.read reads the data from serverside
Because it is reading the data sent by the server through the network, it is not reading directly the server filesystem or resouces ( db , ram or anything like that ) it is reading the data that was already processed by the ServerSocket.
Think about the Socket as your web browser and the ServerSocket as the remote webserver.
When you request an image, page, etc, the webserver ( The ServerSocket ) writes the bytes to the client, in turn the client has to read them ( to know what the webserver sent right? ) and process them by displaying them to the final user.
The same happend with ServerSocket/Socket but at a lower level. The socket reads information from the ServerSocket.
Does it make sense?