a simple server which waits for message from a client
-
// server which waits for messages from a client
-
import java.io.*;
-
import java.util.*;
-
import java.net.*;
-
-
-
public class TCPserver extends Thread
-
{
-
private ServerSocket serverSocket;
-
ObjectInputStream br=null;
-
ObjectOutputStream pw=null;
-
int receivePort; // port to receive from
-
boolean threadRunning = true; // flag to terminate thread
-
-
TCPserver(int receivePort) // constructor to receive datagrams on port receivePort
-
{
-
this.receivePort = receivePort;
-
}
-
-
// terminate the thread by setting flag
-
public void stopTCPserver()
-
{
-
threadRunning = false;
-
}
-
-
public void run() // thread run method, receives and buffers datagrams
-
{
-
Socket socket=null;
-
try
-
{
-
while (threadRunning)
-
{
-
System.out.println("TCP server starting: IP address "
-
+ InetAddress.getLocalHost().toString() + " port " + receivePort );
-
serverSocket = new ServerSocket(receivePort);
-
socket = serverSocket.accept(); // Wait for client to connect.
-
System.out.println("Client connect from IP address " + socket.getInetAddress()
-
+ " port " + socket.getPort());
-
br = new ObjectInputStream( ( socket.getInputStream() ) );
-
pw = new ObjectOutputStream( socket.getOutputStream() );
-
while(threadRunning)
-
try
-
{
-
String code = (String) br.readObject();
-
System.out.println( "Server received string: '" + code + "'");
-
}
-
catch (Exception se) {System.err.println("done"); break;}
-
serverSocket.close();
-
}
-
}
-
catch (Exception se) {System.err.println("run() " + se); }
-
-
System.exit(1); // exit on failure
-
}
-
-
-
public static void main(String args[])
-
{
-
int receivePort=9000; // port to receive datagrams on
-
TCPserver frameInput = new TCPserver(receivePort); // create server to receive messages
-
frameInput.start(); // and start it
-
System.out.println("ready to receive datagrams from socket " + receivePort);
-
}
-
-
}
-
-
a simple client which sends messages entered at keyboard to the server
-
// client which sends a message to a server using TCP
-
-
import java.io.*;
-
import java.util.*;
-
import java.net.*;
-
-
public class TCPclient
-
{
-
-
static void sendString(String remoteIPaddress, int remotePort)
-
{
-
Socket socket1; // To server.
-
ObjectOutputStream objOut; // To write to server.
-
try
-
{
-
socket1 = new Socket( remoteIPaddress, remotePort );
-
objOut = new ObjectOutputStream( socket1.getOutputStream() );
-
System.out.println("Server contacted OK sending " );
-
while(true)
-
{
-
String s = in.readLine();
-
objOut.writeObject(s); // send message three times
-
} // end try
-
}
-
catch (UnknownHostException e) {System.err.println("SendString " + e); }
-
catch (SocketException se) {System.err.println("SendString " + se); }
-
catch (IOException e) {System.err.println("SendString " + e); }
-
}
-
-
private final static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
-
public static void main(String args[])
-
{
-
System.out.println("enter message to send to server");
-
TCPclient.sendString("127.0.0.1", 9000);
-
}
-
-
}
-
1. compile the server and run it
2. compile the client and run it
3. message typed in a client appear at server