TCP CHAT APPLICATION
NAME: SATHIYA A K
ROLL NO: 21CS149
CODE:
FILE: TCPClient.java
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) {
String serverAddress = "localhost"; // Server's IP address or hostname
int serverPort = 8080; // Port number the server is listening on
try {
// Create a socket to connect to the server
Socket socket = new Socket(serverAddress, serverPort);
// Set up input and output streams for communication
BufferedReader in = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// Send a message to the server
out.println("Hello, Server!");
// Receive and print the response from the server
String serverResponse = in.readLine();
System.out.println("Received from server: " + serverResponse);
// Close the socket and streams
in.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
FILE:TCPServer.java
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) {
int port = 8080; // Port number to listen on
try {
// Create a server socket
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("Server is listening on port " + port);
// Wait for a client to connect
Socket clientSocket = serverSocket.accept();
System.out.println("Client connected from " +
clientSocket.getInetAddress().getHostAddress());
// Set up input and output streams for communication
BufferedReader in = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),
true);
// Read data from the client
String clientMessage = in.readLine();
System.out.println("Received from client: " + clientMessage);
String responseMessage = "Hello, Client!"; // Change this message
as needed
// Send a reply back to the client
out.println(responseMessage);
System.out.println("Sent to client: " + responseMessage);
// Close the sockets and streams
in.close();
out.close();
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
OUTPUT:
UDP CHAT APPLICATION
CODE:
import java.io.*;
import java.net.*;
public class UDPClient {
public static void main(String[] args) {
DatagramSocket clientSocket = null;
try {
// Create a UDP socket
clientSocket = new DatagramSocket();
InetAddress serverAddress = InetAddress.getByName("127.0.0.1");
int serverPort = 9876;
BufferedReader userInput = new BufferedReader(new
InputStreamReader(System.in));
while (true) {
System.out.print("Enter a message to send to the server (or
'exit' to quit): ");
String message = userInput.readLine();
if (message.equals("exit")) {
break;
}
byte[] sendData = message.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData,
sendData.length, serverAddress, serverPort);
clientSocket.send(sendPacket);
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData,
receiveData.length);
clientSocket.receive(receivePacket);
String serverReply = new String(receivePacket.getData(), 0,
receivePacket.getLength());
System.out.println("Received from server: " + serverReply);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (clientSocket != null && !clientSocket.isClosed()) {
clientSocket.close();
}
}
}
}
import java.io.*;
import java.net.*;
public class UDPServer {
public static void main(String[] args) {
DatagramSocket serverSocket = null;
try {
// Create a UDP socket
serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
System.out.println("Server is waiting for data...");
while (true) {
DatagramPacket receivePacket = new DatagramPacket(receiveData,
receiveData.length);
serverSocket.receive(receivePacket);
String clientMessage = new String(receivePacket.getData(), 0,
receivePacket.getLength());
InetAddress clientAddress = receivePacket.getAddress();
int clientPort = receivePacket.getPort();
System.out.println("Received from client at " + clientAddress
+ ":" + clientPort + ": " + clientMessage);
// Process the received data (you can add your logic here)
// Send a reply back to the client
String serverReply = "Hello from the server!";
byte[] sendData = serverReply.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData,
sendData.length, clientAddress, clientPort);
serverSocket.send(sendPacket);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (serverSocket != null && !serverSocket.isClosed()) {
serverSocket.close();
}
}
}
}
OUTPUT: