9.
Using TCP/IP sockets, write a client – server program to make the client send the file
name and to make the server send back the contents of the requested file if present.
Implement the above program using as message queues or FIFOs as IPC channels.
// server Program
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class server {
private static class ClientHandler extends Thread {
private Socket socket;
ClientHandler(Socket socket) {
[Link]("Client connected\n");
[Link] = socket;
}
@Override
public void run() {
try {
BufferedReader reader=new BufferedReader(new InputStreamReader([Link]()));
PrintWriter writer =new PrintWriter([Link](), true);
String file=[Link]().trim();
[Link]("Requeseted file is "+file+"\n");
FileReader fp2=new FileReader(file);
BufferedReader rr=new BufferedReader(fp2);
int c;
String k=null;
while((k=[Link]())!=null)
{
[Link](k);
}
1
[Link]();
[Link]();
[Link]();
}
catch (IOException e)
{}
}
}
public static void main ( String[] args ) {
final int port = 9912;
try {
ServerSocket ss = new ServerSocket(port);
[Link]("Listening ...");
while ( true ) {
Socket socket = [Link]();
new ClientHandler(socket).start();
}
}
catch (IOException e)
{ }
}
}
//client program
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class client {
public static void main (String[] args) {
Socket socket = null;
try {
2
socket = new Socket([Link]().getHostName(), 9912);
BufferedReader reader =new BufferedReader(new
InputStreamReader([Link]()));
PrintWriter writer = new PrintWriter([Link](), true);
[Link]("Enter the file name : ");
Scanner t=new Scanner([Link]);
String file=[Link]();
[Link](file);
[Link]("reading client...");
String h=null;
while((h=[Link]())!=null)
[Link](h);
[Link]();
}
catch (IOException e)
{}
}
}
// Commands to Execute
First run FIFO server program in Terminal 1
Javac [Link]
Java filename
Then run FIFO client program in Terminal 2
Javac [Link]
Java filename
3
4