File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Sockets and Internet Protocols and the fly likes Independent Serwer to Client (!) communication Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Sockets and Internet Protocols
Bookmark "Independent Serwer to Client (!) communication" Watch "Independent Serwer to Client (!) communication" New topic

Independent Serwer to Client (!) communication

Michal Olek

Joined: May 28, 2003
Posts: 1
Does anyone knows how the following problem is solved in application like YahooMessneger etc:
When client starts it connects to server via TCPIP and maintains permanent connection to it. THe server starts new thread and this new thread receives incoming messages, process them and sends back result. So far, so simply. But !
How, then, server communicates to client an "independent" event (ie: "User John is now online") THere is no new connection made to client from server. THis is for sure. The message goes via the connection that client initiates. On the server side it is not a problem - server just "push" the message to output stream. But the client expects message only when it has sent previosuly something to server (!) One may add a thread to a client that is only waiting for messages from server, but then how client may tell whether something that is coming from the server is the answer to request or a notification of an independent event?
srinivas madugula

Joined: Apr 12, 2003
Posts: 6
I think its all the protocol.
server program may me sending(just eg)
CTRL: info like some one loging in etc.(independent event)
USRD user: display information
Scotty Sinclair

Joined: Jun 26, 2003
Posts: 17
I think so too, it will be all in the protocol.
My yahoo client will have a list of friends, who it contacts, when I start it up.
Yaroslav Chinskiy
Ranch Hand

Joined: Jan 09, 2001
Posts: 147
I think it is relatively simple. U create a class that sends requests only and a message listener.
message listener is a thread that listens to events from the server.
RequestSender opens connection to the server sends a request and waits for the reply on the same connection.
The problem is, what happens if the server cannot initiate connection to the client due to the FW.
What happened to me is there is a FW between S and C. so only client can initiate the connection and only on the range of ports. So how do i open connection to the server and make the server to switch the connection to a random local port so it is dedicated to the connected client?
Any idea?
this way u have async communication.
I agree. Here's the link:
subject: Independent Serwer to Client (!) communication
It's not a secret anymore!