Hello!I am new in this site and wish to improve my java clent server application code.It's to connect the client to the server through a port and random jokes request by the client to the server be sent to the client.
Thanks
Thanks
// 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);
}
}
// 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);
}
}
Comment