0% found this document useful (0 votes)
21 views

Server Client Chat

The document describes code for a socket server and multi-client server. The server code creates a server socket that listens on port 6600 and accepts client connections. It prints messages received from clients and sent by the server. The client code connects to the server socket, prints messages from the server, and sends messages input by the user to the server. When a client connects, both create threads to asynchronously read and print messages from each other.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Server Client Chat

The document describes code for a socket server and multi-client server. The server code creates a server socket that listens on port 6600 and accepts client connections. It prints messages received from clients and sent by the server. The client code connects to the server socket, prints messages from the server, and sends messages input by the user to the server. When a client connects, both create threads to asynchronously read and print messages from each other.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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