The beginning of the new Year, work code code, looked at the summary of their own years ago, found that there is a socket communication Help library socketsimple, today to introduce the role of the library.
function explanation
Socketsimple Library is mainly for socket server implementation and socket client implementation of encapsulation, service driven by Serverhelper management, the client is managed by Clienthelper, the communication adopts callback mode, mainly has the exception callback, the connection callback, The message receives the callback, the message sends out the callback and so on, internal multithreading concurrency, the message receives on the independent thread, supports the long connection, supports the multi-service side, the multi-client creation and so on.
Integration method
- Jar Package Download Socketsimple.jar
- Maven Central Warehouse http://search.maven.org/Search Socketsimple
Note: Please use GitHub as the version.
code example
/** * Service-Side test class */public class Test {private static set<string> addresses = new hashset<string> (); public static void Main (string[] args) {//Create server final Serverhelper helper = Serverhelper.getinstance (true); Helper.createserver (9988, New Servercallback () {//exception callback @Override public void One Rror (Throwable error) {}//Client connection callback @Override public void onaccept (String addr ESS) {Addresses.add (address); }//received a client message callback @Override public void onreceived (String address, byte[] result) { string x = new string (result); iterator<string> Iterator = Addresses.iterator (); while (Iterator.hasnext ()) {String next = Iterator.next (); if (!next.equals (address)) {System.out.println (x); System.out.println (NEXT); Send Message to Client helper.send (9988,next,result); }}}//Send a successful callback to the client @Override public void onsent (String address, Byte[] data) {System.out.println (new String); } }); }}/** * Client 1 Test class */public class Test1 {public static void main (string[] args) {//Create Client 1 final clienthelp ER helper = clienthelper.getinstance (true); Helper.createclient ("192.168.1.114", 9988, New Clientcallback () {//exception callback @Override public void OnError (Throwable e) {}//connection server callback @Override public void onconnected (FIN Al String address, Final int port) {///thread Get keyboard entry (note: Because the keyboard entry will clog the thread, it will cause the method to be blocked when used directly in the method) NE W Thread (New Runnable () {@Override public void run () {Scann ER ScanneR = new Scanner (system.in); while (Scanner.hasnextline ()) {String s = scanner.nextline (); if (S.equals ("Exit")) {//Close client helper.closeclient (address,p ORT); Recycling resources helper.recycle (); Return }//Send message to Server Helper.send (Address,port,s.getbytes ()); }}). Start (); }//Receive Server message callback @Override public void onreceived (String address, int port, byte[] result) { System.out.println ("client1-received:" + (new String (result)); }//Send Server message succeeded callback @Override public void onsent (String address, int port, byte[] data) { String s = nEW String (data); System.out.println ("Client1-sent:" + s); } }); }}/** * Client 2 Test class */public class Test2 {public static void main (string[] args) {//Create Client 2 final Clienthelp ER helper = clienthelper.getinstance (false); Helper.createclient ("127.0.0.1", 9988, New Clientcallback () {//Exception callback @Override public Voi D onError (Throwable e) {}//connection server-side callback @Override public void onconnected (final S Tring address, Final int port) {New Thread (new Runnable () {@Override public void Run () {Scanner Scanner = new Scanner (system.in); while (Scanner.hasnextline ()) {String s = scanner.nextline (); if (S.equals ("Exit")) {helper.closeclient (address,port); Helper.recycLe (); Return }//Send message to Server Helper.send (Address,port,s.getbytes ()); }}). Start (); }//Receive server-side message callback @Override public void onreceived (String address, int port, byte[] result) { System.out.println ("client2-received:" + (new String (result)); }//Send a successful callback to the server @Override public void onsent (String address, int port, byte[] data) { System.out.println ("Client2-sent:" + (new String (data)); } });}}
Note: The server handles two client chat messages and two client chat samples.
Conclusion
Welcome to the integration of use, if the source of interest, please visit GitHub address, if it feels good, please give a star to encourage, the use of problems please leave issues. If you have better ideas or suggestions and good inspiration, please email author, thank you!
Java Implementation Ip/tcp Communication helper class Socketsimple