TCP Server-Client communication using JSON messages


TCP server-client communication through json message

Include following code to your pom.xml file if you are using maven or add org.json jar to your lib folder

 org.json
 json
 20140107

Client Code
import java.io.*;
import java.net.Socket;

public class SocketClient {

    public static void main(String[] args) {
        try {
            String dataTosend = "[{\"CODE_NAME\":\"Google\",\"URL\":\"www.google.com\",\"COMPANY\":\"02\"}]\n";
            Socket client = new Socket("127.0.0.1", 6666);
            OutputStream outToServer = client.getOutputStream();
            DataOutputStream out = new DataOutputStream(outToServer);
            out.writeUTF(dataTosend);

            InputStream inFromServer = client.getInputStream();
            DataInputStream in =  new DataInputStream(inFromServer);
            System.out.println("Server Says "+ in.readUTF());
            client.close();
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }
}
Server Code
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @Author: 
 * @Since: 11/3/14
 */

public class TCPServer  extends Thread{
    private ServerSocket serverSocket;
    private int port = 6666;
    public TCPServer() throws IOException {
        serverSocket = new ServerSocket(port);
        System.out.println("Server Started.....");
        start();
    }

    public void run()
    {
        while(true)
        {
            try {
                Socket server = serverSocket.accept();
                System.out.println("waiting for client port"+ serverSocket.getLocalPort());
                DataInputStream in = new DataInputStream(server.getInputStream());
    
    String requestData = in.readUTF();
    JSONObject obj = new JSONObject(requestData);
    String CODE_NAME = obj.getString("CODE_NAME");
    String company = obj.getString("COMPANY");
    String URL = obj.getString("URL");
                DataOutputStream out = new DataOutputStream(server.getOutputStream()); 
                out.writeUTF("Requst Successfully processed from "+CODE_NAME+" Request");
                server.close();

            }
            catch (Exception e)
            {

            }
        }
    }

    public static void main(String[] args) throws IOException {
        TCPServer server = new TCPServer();
    }
}

Reactions

Post a Comment

0 Comments