You are on page 1of 4

Socket server & Multi-client server

Server side code :


package socket;

import java.io.*;

import java.net.*;

import java.util.Scanner;

public class Server {

private ServerSocket serverSocket;

private Socket clientSocket;

private BufferedReader reader;

private PrintWriter writer;

public static void main(String[] args) {

new Server().start();

public void start() {

try {

serverSocket = new ServerSocket(6600);

System.out.println("Server started on port 6600");

clientSocket = serverSocket.accept();

System.out.println("Client connected");

reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

writer = new PrintWriter(clientSocket.getOutputStream(), true);

new Thread(new ClientMessageHandler()).start();

Scanner scanner = new Scanner(System.in);

String message;

while (true) {

message = scanner.nextLine();

writer.println( message);

} catch (IOException e) {

e.printStackTrace();

} finally {

closeServer();

}
}

public void closeServer() {

try {

reader.close();

writer.close();

clientSocket.close();

serverSocket.close();

} catch (IOException e) {

e.printStackTrace();

private class ClientMessageHandler implements Runnable {

public void run() {

try {

String message;

while ((message = reader.readLine()) != null) {

System.out.println(message);

} catch (IOException e) {

e.printStackTrace();

///////////////////////////////////////////////////////////////////////////////////

Client side code:


package socket;

import java.io.*;

import java.net.*;

import java.util.Scanner;

public class Client {

private Socket socket;

private BufferedReader reader;

private PrintWriter writer;


public static void main(String[] args) {

new Client().start();

public void start() {

try {

socket = new Socket("localhost", 6600);

System.out.println("Connected to server");

reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));

writer = new PrintWriter(socket.getOutputStream(), true);

new Thread(new ServerMessageHandler()).start();

Scanner scanner = new Scanner(System.in);

String message;

while (true) {

message = scanner.nextLine();

writer.println("client : "+ message);

} catch (IOException e) {

e.printStackTrace();

} finally {

closeClient();

public void closeClient() {

try {

reader.close();

writer.close();

socket.close();

} catch (IOException e) {

e.printStackTrace();

private class ServerMessageHandler implements Runnable {

public void run() {

try {
String message;

while ((message = reader.readLine()) != null) {

System.out.println("server :"+message);

} catch (IOException e) {

e.printStackTrace();

Figure 1 server side output

Figure 2 client side output

You might also like