// Server
package com.topking.ftp.util;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.HeadlessException;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer extends Frame
{
/**
* serialVersionUID
*/
private static final long serialVersionUID = 2333390035339206037L;
static Button b = new Button(" ");
static Label l1 = new Label("No connection on port 8888");
public TcpServer() throws HeadlessException
{
super("Listening");
setLayout(new FlowLayout(FlowLayout.LEFT));
add(b);
add(l1);
b.setBackground(Color.RED);
setVisible(true);
pack();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
b.addActionListener(new ButtonListener());
}
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
}
}
public static void main(String args[])
{
new TcpServer();
int port;
ServerSocket server_socket;
BufferedReader input;
try
{
port = Integer.parseInt(args[0]);
}
catch (Exception e)
{
System.out.println("port = 8888 (default)");
port = 8888;
}
try
{
server_socket = new ServerSocket(port);
System.out.println("Server waiting for client on port "
+ server_socket.getLocalPort());
// server infinite loop
while (true)
{
Socket socket = server_socket.accept();
b.setBackground(Color.GREEN);
l1.setText("Connection" + socket.getInetAddress());
System.out.println("New connection accepted "
+ socket.getInetAddress() + ":" + socket.getPort());
input = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
// print received data
try
{
while (true)
{
String message = input.readLine();
if (message == null)
break;
System.out.println(message);
}
}
catch (IOException e)
{
System.out.println(e);
}
// connection closed by client
try
{
socket.close();
b.setBackground(Color.RED);
l1.setText("No connection on port 8888");
System.out.println("Connection closed by client");
}
catch (IOException e)
{
System.out.println(e);
}
}
}
catch (IOException e)
{
System.out.println(e);
}
}
}
// Client
package com.topking.ftp.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class TcpClient
{
public static void main(String[] args)
{
int port = 8888;
String server = "localhost";
Socket socket = null;
String lineToBeSent;
BufferedReader input;
PrintWriter output;
int ERROR = 1;
// read arguments
if (args.length == 2)
{
server = args[0];
try
{
port = Integer.parseInt(args[1]);
}
catch (Exception e)
{
System.out.println("server port = 1000 (default)");
port = 1500;
}
}
// connect to server
try
{
socket = new Socket(server, port);
System.out.println("Connected with server "
+ socket.getInetAddress() + ":" + socket.getPort());
}
catch (UnknownHostException e)
{
System.out.println(e);
System.exit(ERROR);
}
catch (IOException e)
{
System.out.println(e);
System.exit(ERROR);
}
try
{
input = new BufferedReader(new InputStreamReader(System.in));
output = new PrintWriter(socket.getOutputStream(), true);
// get user input and transmit it to server
while (true)
{
lineToBeSent = input.readLine();
// stop if input line is "."
if (lineToBeSent.equals("."))
break;
output.println(lineToBeSent);
}
}
catch (IOException e)
{
System.out.println(e);
}
try
{
socket.close();
}
catch (IOException e)
{
System.out.println(e);
}
}
}
package com.topking.ftp.util;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.HeadlessException;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer extends Frame
{
/**
* serialVersionUID
*/
private static final long serialVersionUID = 2333390035339206037L;
static Button b = new Button(" ");
static Label l1 = new Label("No connection on port 8888");
public TcpServer() throws HeadlessException
{
super("Listening");
setLayout(new FlowLayout(FlowLayout.LEFT));
add(b);
add(l1);
b.setBackground(Color.RED);
setVisible(true);
pack();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
b.addActionListener(new ButtonListener());
}
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
}
}
public static void main(String args[])
{
new TcpServer();
int port;
ServerSocket server_socket;
BufferedReader input;
try
{
port = Integer.parseInt(args[0]);
}
catch (Exception e)
{
System.out.println("port = 8888 (default)");
port = 8888;
}
try
{
server_socket = new ServerSocket(port);
System.out.println("Server waiting for client on port "
+ server_socket.getLocalPort());
// server infinite loop
while (true)
{
Socket socket = server_socket.accept();
b.setBackground(Color.GREEN);
l1.setText("Connection" + socket.getInetAddress());
System.out.println("New connection accepted "
+ socket.getInetAddress() + ":" + socket.getPort());
input = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
// print received data
try
{
while (true)
{
String message = input.readLine();
if (message == null)
break;
System.out.println(message);
}
}
catch (IOException e)
{
System.out.println(e);
}
// connection closed by client
try
{
socket.close();
b.setBackground(Color.RED);
l1.setText("No connection on port 8888");
System.out.println("Connection closed by client");
}
catch (IOException e)
{
System.out.println(e);
}
}
}
catch (IOException e)
{
System.out.println(e);
}
}
}
// Client
package com.topking.ftp.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class TcpClient
{
public static void main(String[] args)
{
int port = 8888;
String server = "localhost";
Socket socket = null;
String lineToBeSent;
BufferedReader input;
PrintWriter output;
int ERROR = 1;
// read arguments
if (args.length == 2)
{
server = args[0];
try
{
port = Integer.parseInt(args[1]);
}
catch (Exception e)
{
System.out.println("server port = 1000 (default)");
port = 1500;
}
}
// connect to server
try
{
socket = new Socket(server, port);
System.out.println("Connected with server "
+ socket.getInetAddress() + ":" + socket.getPort());
}
catch (UnknownHostException e)
{
System.out.println(e);
System.exit(ERROR);
}
catch (IOException e)
{
System.out.println(e);
System.exit(ERROR);
}
try
{
input = new BufferedReader(new InputStreamReader(System.in));
output = new PrintWriter(socket.getOutputStream(), true);
// get user input and transmit it to server
while (true)
{
lineToBeSent = input.readLine();
// stop if input line is "."
if (lineToBeSent.equals("."))
break;
output.println(lineToBeSent);
}
}
catch (IOException e)
{
System.out.println(e);
}
try
{
socket.close();
}
catch (IOException e)
{
System.out.println(e);
}
}
}