You are on page 1of 8

Socket Programming using TCP:

Server Side :

import java.net.*;
import java.io.*;
import java.util.Scanner;
class Servertcp{
public static void main(String[] args)
throws Exception{
String c = "";
String b;
int choice = -1;
try {
ServerSocket ss = new
ServerSocket(1024);
Socket s = ss.accept();
BufferedReader br = new
BufferedReader(new InputStreamReader(s.getInputStream() ) );
choice = Integer.parseInt(br.readLine());
b = br.readLine();
String [] x = b.split("");
switch(choice){
case 1:
c = b.toUpperCase();
break;
case 2:
c = b.toLowerCase();
break;
case 3:
c = b.trim();
break;
}
PrintStream pr = new PrintStream(s.getOutputStream());
pr.println(c);
ss.close();
s.close();
}
catch(IOException | NumberFormatException e){
System.out.println("Connection closed ");
}
}
}
Client Side:

import java.net.*;
import java.io.*;
import java.util.Scanner;
class Clienttcp{
public static void main(String[] args)
throws Exception{
int ch=-1;
String b,c;
Scanner sc = new
Scanner(System.in);
Socket s = new
Socket("localhost",1024);
BufferedReader br = new
BufferedReader(new
InputStreamReader(System.in));
PrintStream ps=new
PrintStream(s.getOutputStream());
System.out.println("Please enter string: ");
b=br.readLine();
System.out.println("Enter operation to be performed: ");
System.out.println("1.Uppercase 2. Lowercase 3.Trim ");
ch = Integer.parseInt(br.readLine());
ps.println(ch);
ps.println(b);
BufferedReader br1 = new
BufferedReader(new
InputStreamReader(s.getInputStream()));
c = br1.readLine();
System.out.println(c);
s.close();
}
}
Output:
At server end:

At Client end:
Server Side:

import java.io.*;
import java.util.*;
import java.net.*;
class Serversideudp{
static String inr_to_usd(String s){
double c = Double.parseDouble(s)*0.013;
return "USA - USD : "+Double.toString(c)+"\n";
}
static String inr_to_gbp(String s){
double c = Double.parseDouble(s)*0.011;
return "UK - GBP : "+Double.toString(c)+"\n";
}
static String inr_to_cad(String s){
double c = Double.parseDouble(s)*0.016;
return "Canada - CAD : "+Double.toString(c)+"\n";
}
static String inr_to_aed(String s){
double c = Double.parseDouble(s)*0.046;
return "UAE - AED : "+Double.toString(c)+"\n";
}
public static void main(String args[])throws IOException {
System.out.println("Currency Converter[Server Side] : \n");
DatagramSocket ss=new DatagramSocket(2100);
byte[] sendData=new byte[1024];
byte[] recData=new byte[1024];
while(true)
{
recData = new byte[1024];
DatagramPacket dp=new
DatagramPacket(recData,recData.length);
ss.receive(dp);
String input=new String(dp.getData());
String[] st = input.trim().split("\t");
String output="";
if(Objects.equals(st[0], "0")){
ss.close();
break;
}
String ch = "";
switch (st[1]){
case "1": output += inr_to_usd(st[0]);
ch += "USD";
break;

case "2": output += inr_to_gbp(st[0]);


ch += "GBP";
break;

case "3": output += inr_to_cad(st[0]);


ch += "CAD";
break;

case "4": output += inr_to_aed(st[0]);


ch += "AED";
break;
case "5": output +=
inr_to_usd(st[0])+inr_to_gbp(st[0])+inr_to_cad(st[0])+inr_to_aed(st[0]);
ch += "all";
break;
default: output = "invalid";
break;
}
InetAddress ip=dp.getAddress();
System.out.println("Received input : "+"INR "+st[0]);
System.out.println("Conversion currency : "+ch);
System.out.println("Result : "+output.split(" : ")[1]);
int port=dp.getPort();
//output=output.concat(input);
sendData=output.getBytes();
DatagramPacket dp1=new
DatagramPacket(sendData,sendData.length,ip,port);
ss.send(dp1);
recData = new byte[1024];
}
ss.close();
}
}

Client side:
import java.io.*;
import java.util.*;
import java.net.*;
class Clientudp{
public static void main(String args[])throws IOException{
System.out.println("Currency Converter[Client Side] : \n");
BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
Scanner sc = new Scanner(System.in);
DatagramSocket ds=new DatagramSocket();
InetAddress ip=InetAddress.getByName("localhost");
byte[] sendData=new byte[1024];
byte[] recData=new byte[1024];
while (true){
System.out.println("Enter the amount in INR [0 to exit]:");
String input = sc.nextLine();
String in = input;
if (Integer.parseInt(input) != 0) {
input += "\t";
System.out.println("Choose conversion : 1.USD(US) 2.GBP(UK) 3.CAD(Canada)
4.AED(UAE) 5.all ");
input += sc.nextLine();
}
sendData = input.getBytes();
DatagramPacket dp = new
DatagramPacket(sendData, sendData.length, ip, 2100);
ds.send(dp);
if (Integer.parseInt(in) == 0) {
ds.close();
break;
}
DatagramPacket dp1 = new
DatagramPacket(recData, recData.length);
ds.receive(dp1);
String output = new String(dp1.getData());
System.out.println("INR "+in+" =");
System.out.println(output.trim()+"\n");
recData = new byte[1024];
//ds.close();
}
}
}

You might also like