The client communicates with the server using the socket (socket).
Here are two examples:
The first is that each time a client sends a data, the server makes a response. (That is, to take turns)
The second is that the client can continuously send data to the server, and the server can continuously send data to the client. Multithreaded
For convenience, the client server is placed on a host, open two processes respectively [haha, interprocess communication lol~]
PS: A prototype of a chat program
And the code is on GitHub: Https://github.com/MummyDing/socketChatDemo
Demo 1:
Simple socket communication, one sentence to the end of a person (to always say add a loop is good)
Client
/**clientauthor:mummyding*/import java.lang.Runnable; Import java.io.*; Import Java.net.*;class clientconnect{Socket client = null; BufferedReader inputdata = null; PrintWriter outputdata = null; String Receivedata, SendData; Clientconnect () {try {client = new Socket ("127.0.0.1", 5234); DealData (); } catch (Exception e) {System.out.println ("I Cann ' t connect!"); System.exit (1); }} void DealData () {try{outputdata = new PrintWriter (Client.getoutputstream (), true); Inputdata = new BufferedReader (New InputStreamReader (Client.getinputstream ())); Sendmsg (); Receivemsg (); }catch (Exception e) {System.out.println ("Error ~"); }} void Sendmsg () {outputdata.println ("Hello Server"); } void Receivemsg () {try{receivedata = Inputdata.readline (); SYSTEM.OUT.PRINTLN ("Server said" +receivedata); }catch (Exception E) {System.out.println ("Error"); }}}public class Client {public static void main (string[] args) {Clientconnect connecte = new Clientconnect (); }}
Service side:
/**serverauthor:mummyding*/import java.lang.Runnable; Import Java.net.*;import java.io.*;class serverconnect {serversocket serversocket = null; Socket clientsocket = null; String Receivedata,senddata;serverconnect () {try {serversocket = new ServerSocket (5234); Clientsocket = Serversocket.accept (); DealData (); } catch (Exception e) {System.out.println ("Server Bulid Error"); System.exit (1); }}void DealData () {Try{printwriter outputdata = new PrintWriter (Clientsocket.getoutputstream (), true); BufferedReader inputdata = new BufferedReader (New InputStreamReader (Clientsocket.getinputstream ())); ReceiveData = Inputdata.readline (); System.out.println ("Client say:" + receivedata); Outputdata.println ("Ha ha, I got your info:" +receivedata); }catch (Exception e) {System.out.println ("error!");}} public class Server{public static void Main (string[] args) {Serverconnect connecte = new Serverconnect ();}}
Demo 2:
In the demo 1 based on the implementation of the progressive, the realization of a person can say a few words in a row. Multithreaded
Client:
/**clientauthor:mummyding*/import Java.util.scanner;import java.lang.Runnable; Import java.io.*; Import Java.net.*;class clientconnect{Socket client = null; BufferedReader inputdata = null; PrintWriter outputdata = null; String Receivedata, SendData; Clientconnect () {try {client = new Socket ("127.0.0.1", 5234); DealData (); Outputdata.println ("OK"); } catch (Exception e) {System.out.println ("I Cann ' t connecte!"); System.exit (0); }} void DealData () {try{outputdata = new PrintWriter (Client.getoutputstream (), true); Inputdata = new BufferedReader (New InputStreamReader (Client.getinputstream ())); }catch (Exception e) {System.out.println ("Error ~"); System.exit (0); }} String sendmsg () {Scanner sc = new Scanner (system.in); SendData = Sc.nextline (); Outputdata.println (SendData); OutputdatA.flush (); System.out.println ("I say:" + senddata); return senddata; } Boolean receivemsg () {try{receivedata = Inputdata.readline (); if (Receivedata.equals ("Shutdown")) return false; SYSTEM.OUT.PRINTLN ("Server said" +receivedata); }catch (Exception e) {System.out.println ("Error"); System.exit (0); } return true; }}public class Client {public static void main (string[] args) {Clientconnect connect = new Clientconnect (); Thread t = new Thread (new Runnable () {public void run () {while (true) {Connect.deal Data (); if (connect.receivemsg () = = False) {SYSTEM.OUT.PRINTLN ("SHUTDOWN!!!"); System.exit (0); } } } }); T.start (); while (Connect.sendmsg (). Equals ("shutdown") = = False) {} system.exit (0);}}
Service side:
/**serverauthor:mummyding*/import Java.util.scanner;import java.lang.Runnable; Import Java.net.*;import java.io.*;class serverconnect {serversocket serversocket = null; Socket clientsocket = null; String Receivedata,senddata; PrintWriter Outputdata; BufferedReader Inputdata;serverconnect () {try {serversocket = new ServerSocket (5234); Clientsocket = Serversocket.accept (); } catch (Exception e) {System.out.println ("Server Bulid Error"); System.exit (1); }}void DealData () {try{outputdata = new PrintWriter (Clientsocket.getoutputstream (), true); inputdata = new Bufferedreade R (New InputStreamReader (Clientsocket.getinputstream ()));} catch (Exception e) {System.out.println ("error!"); System.exit (0);}} Boolean receivemsg () {try{receivedata = Inputdata.readline (); if (Receivedata.equals ("Shutdown")) return false; System.out.println ("Client say:" + receivedata);} catch (Exception e) {System.out.println ("Receive error~"); System.exit (0);} return true;} String sendmsg () {Scanner sc = new Scanner (system.in); senddata = Sc.nextline (); outputdata.println (SendData); Outputdata.flush (); System.out.println ("I say:" + senddata); return senddata;}} public class Server{public static void Main (string[] args) {Serverconnect connect = new Serverconnect (); Thread t = new Thread (new Runnable () {public void run () {while (true) {connect.dealdata (); if (connect.receivemsg () = = False) {SYSTEM.OUT.PRINTLN ("SHUTDOWN!!!"); System.exit (0); }}}); T.start (); while (Connect.sendmsg (). Equals ("shutdown") = = False) {}system.exit (0);}}
--------------------------------------------------
During the period of making a very two errors, the client and the server used the "same name class", which led to the post-compilation of the "Same name class" covered out.
"Reprint Please specify the source"
Author: mummyding
Source: http://blog.csdn.net/mummyding/article/details/46445675
Java Java Socket Communication example