aspose file tools*
The moose likes Sockets and Internet Protocols and the fly likes How to close ServerSocket Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Sockets and Internet Protocols
Bookmark "How to close ServerSocket" Watch "How to close ServerSocket" New topic
Author

How to close ServerSocket

MohanRaj Gurubatham
Greenhorn

Joined: Sep 05, 2001
Posts: 16
Hi,
I need to close a server which is running in a console through a client program or in the same program by passing arguments.
I have used close() method of ServerSocket class.. but it is not working. I have given the spurce bellow which I have used.

public void run()
{
try
{
ss= new ServerSocket(config.getServerPort());
int localPort = ss.getLocalPort();
logger.datedLog("\n\n"+NAME+" is listening on port "+localPort+".");
int j=0;

while(!stopRequested)
{

Socket client = ss.accept();
runThread=new XMLInterfaceThread(client,config,logger);
runThread.start();
}
stop();

}
catch(IOException ex)
{
logger.datedLog("Unable to listen on "+config.getServerPort()+".");
System.exit(0);
}

}
// --------------------
public void stop()
{
stopRequested=true;
try
{
if(ss!=null)

{
logger.datedLog("Shutingdown XMLInterface ...");
runThread.interrupt();
ss.close();
}
else
{
logger.datedLog("XMLInterface is not connected.");
}

}
catch(IOException ioe)
{
logger.datedLog("Unable to close the XMLInterface ."+ioe.getMessage());
}
}
// ------------------------
how could I call this stop() method from a client program.
If I create a new instance of the server class it comes into the else part of the stop() method.
solution with source would be appreciated.
Thank you in advance,
GMohanraj
netharam ram
Ranch Hand

Joined: Aug 09, 2001
Posts: 202
Hai, Mohan u can do this quiet easily.just create a socket from another program, or the same,sending a message eg."exit".read this & if it is "exit" ,quit the program.
eg.
Socket s=new Socket(localhost,config.getServerPort());

then write the message "exit".
close socket s.
Happy middling with java.
Bye from netharam
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: How to close ServerSocket