Professional Documents
Culture Documents
Problem Description Solution: How To Create A Multithreaded Server ?
Problem Description Solution: How To Create A Multithreaded Server ?
Solution
Following example demonstrates how to create a multithreaded server by
using ssock.accept() method of Socket class and
MultiThreadServer(socketname) method of ServerSocket class.
import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
Socket csocket;
MultiThreadServer(Socket csocket) {
this.csocket = csocket;
System.out.println("Listening");
while (true) {
System.out.println("Connected");
try {
pstream.close();
csocket.close();
} catch (IOException e) {
System.out.println(e);
Result
The above code sample will produce the following result.
Listening
Connected
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Calendar;
ServerSocket myServerSocket;
public NewClass() {
try {
} catch(IOException ioe) {
System.exit(-1);
while(ServerOn) {
try {
cliThread.start();
} catch(IOException ioe) {
ioe.printStackTrace();
try {
myServerSocket.close();
System.out.println("Server Stopped");
} catch(Exception ioe) {
System.exit(-1);
}
}
new NewClass();
Socket myClientSocket;
public ClientServiceThread() {
super();
ClientServiceThread(Socket s) {
myClientSocket = s;
BufferedReader in = null;
System.out.println(
try {
in = new BufferedReader(
new InputStreamReader(myClientSocket.getInputStream()));
new OutputStreamWriter(myClientSocket.getOutputStream()));
while(m_bRunThread) {
String clientCommand = in.readLine();
if(!ServerOn) {
out.flush();
m_bRunThread = false;
if(clientCommand.equalsIgnoreCase("quit")) {
m_bRunThread = false;
} else if(clientCommand.equalsIgnoreCase("end")) {
m_bRunThread = false;
ServerOn = false;
} else {
out.flush();
} catch(Exception e) {
e.printStackTrace();
finally {
try {
in.close();
out.close();
myClientSocket.close();
System.out.println("...Stopped");
} catch(IOException ioe) {
ioe.printStackTrace();