Java code package lane.services.basic; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedWriter; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; public class LaneSocket { private static LaneSocket self = null; private static ServerSocket serverSocket = null; private Socket socket = null; private char[] cbuf = new char[8192]; private String msgHead = null; private BufferedReader buffR = null; private BufferedWriter buffW = null; private Boolean blMapping = false; // /** * data receive from client */ private String recevData = "1"; /** * data sending to client */ private String sendData = "<xml>sss<xml>"; // /** * main method * * @param args */ public static void main(String[] args) { try { LaneSocket laneMain = LaneSocket.getInstance(); laneMain.socketStart(); } catch (Exception e) { System.out.println("Socket Exception:" + e); } } /** * constructor * @param none */ private LaneSocket(){ try { /* port is 5000 */ serverSocket = new ServerSocket(54321); } catch (IOException ioE) { System.out.println(ioE.getMessage()); } } /** * by single mode, get the instance * @param none */ public static LaneSocket getInstance(){ if(self == null){ self = new LaneSocket(); } return self; } /** * server socket accept and send * * @throws IOException * @param none * @return none */ public void socketStart() { /* listener */ while (!blMapping) { if (socketHandler(serverSocket)) { blMapping = true; } } } /** * get message head from the socket * * @param serverSocket * @return true:client message head map successfully, false: mapping failed */ public Boolean socketHandler(ServerSocket serverSocket) { try { socket = serverSocket.accept(); System.out.println("connection established......"); /* get the data from client */ buffR = new BufferedReader(new InputStreamReader(socket .getInputStream())); /* set the data to client */ buffW = new BufferedWriter(new OutputStreamWriter(socket .getOutputStream())); buffR.read(cbuf, 0, cbuf.length); /* get the message head */ msgHead = new String(cbuf); System.out.println("Message Head is:" + msgHead); /* message is received successfully */ if (recevData.equals(msgHead)) { /* message is response */ buffW.write(sendData); buffW.flush(); return true; } } catch (IOException ioE) { System.out.println(ioE.getMessage()); } finally { try { if (buffW != null) { buffW.close(); } if (buffR != null) { buffR.close(); } } catch (IOException ioE) { System.out.println(ioE.getMessage()); } } return false; } } Flash Code