试做了方便使用java Socket的插件

 这个插件包装了关于java Socket的一些比较常用的方法 使Socket用起来比较方便

  1. package sockettest;
  2. import java.io.FileNotFoundException;
  3. import java.io.IOException;
  4. import java.net.InetAddress;
  5. import java.net.UnknownHostException;
  6. import java.util.logging.Level;
  7. import java.util.logging.Logger;
  8. import org.shouchan.socket.impl.Socket;
  9. /**
  10.  *
  11.  * @author SHOUCHAN
  12.  */
  13. public class Main {
  14.     /**
  15.      * @param args the command line arguments
  16.      */
  17.     public static void main(String[] args) {
  18.         System.out.println("对客户端文字发送:");
  19.         //接受文字的服务器
  20.         new Thread(new Runnable() {
  21.             public void run() {
  22.                 Socket socket = new Socket(9000);
  23.                 int i = 0;
  24.                 while(i < 4){
  25.                     Socket sk = socket.bindSocket();
  26.                     server(sk);
  27.                     i++;
  28.                 }
  29.             }
  30.         }).start();
  31.         //发送文字的客户端(4个客户端)
  32.         Socket socket1 = null;
  33.         Socket socket2 = null;
  34.         Socket socket3 = null;
  35.         Socket socket4 = null;
  36.         try {
  37.             socket1 = new Socket(InetAddress.getLocalHost(), 9000);
  38.             socket1.sendValue("Hello World");
  39.             System.out.println("socket1: " + socket1.getValue());
  40.             socket2 = new Socket(InetAddress.getLocalHost(), 9000);
  41.             socket2.sendValue("Hello World");
  42.             System.out.println("socket2: " + socket2.getValue());
  43.             socket3 = new Socket(InetAddress.getLocalHost(), 9000);
  44.             socket3.sendValue("Hello World");
  45.             System.out.println("socket3: " + socket3.getValue());
  46.             socket1.sendValue("bye");
  47.             System.out.println("socket1: " + socket1.getValue());
  48.             socket4 = new Socket(InetAddress.getLocalHost(), 9000);
  49.             socket4.sendValue("Hello World");
  50.             System.out.println("socket4: " + socket4.getValue());            
  51.             socket2.sendValue("bye");
  52.             System.out.println("socket2: " + socket2.getValue());            
  53.             socket4.sendValue("bye");
  54.             System.out.println("socket4: " + socket4.getValue());     
  55.             socket3.sendValue("bye");
  56.             System.out.println("socket3: " + socket3.getValue());
  57.         } catch (UnknownHostException ex) {
  58.             Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
  59.         } finally {
  60.             socket1.close();
  61.             socket2.close();
  62.             socket3.close();
  63.             socket4.close();
  64.         }
  65.         System.out.println("/n发送二进制文件");
  66.         //发送二进制文件
  67.         test1();
  68.         System.out.println("/n直接发送文件");
  69.         //直接发送文件
  70.         test2();
  71.     }
  72.     public static void server(final Socket socket) {
  73.         new Thread(new Runnable() {
  74.             public void run() {
  75.                 while (true) {
  76.                     String value = socket.getValue();
  77.                     String host = socket.getSocket().getInetAddress().getHostName();
  78.                     int port = socket.getSocket().getPort();
  79.                     System.out.println(host + ":" + port + " - SAY: " + value);
  80.                     socket.sendValue("server-_ .........");
  81.                     if (value.equals("bye")) {
  82.                         socket.close();
  83.                         break;
  84.                     } 
  85.                 }
  86.             }
  87.         }).start();
  88.     }
  89.     //发送二进制文件
  90.     public static void test1() {
  91.         //服务端
  92.         new Thread(new Runnable() {
  93.             public void run() {
  94.                 Socket socket = new Socket(7000);
  95.                 byte[] v = socket.getFileValue(3);
  96.                 System.out.println(v[0] + "/n" + v[1] + "/n" + v[2]);
  97.                 socket.close();
  98.             }
  99.         }).start();
  100.         //客户端
  101.         try {
  102.             Socket socket = new Socket(InetAddress.getLocalHost(), 7000);
  103.             socket.sendFileValue(new byte[]{1, 1, 0});
  104.             socket.close();
  105.         } catch (UnknownHostException ex) {
  106.             Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
  107.         }
  108.     }
  109.     //直接发送文件
  110.     public static void test2() {
  111.         //接受文件的服务器
  112.         new Thread(new Runnable() {
  113.             public void run() {
  114.                 Socket socket = new Socket(7505).bindSocket();
  115.                 java.io.DataInputStream in = socket.getFileStream();
  116.                 java.io.DataOutputStream out = null;
  117.                 try {
  118.                     out = new java.io.DataOutputStream(new java.io.FileOutputStream("G:/123.jpg"));
  119.                 } catch (FileNotFoundException ex) {
  120.                     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
  121.                 }
  122.                 int i = 0;
  123.                 try {
  124.                     while ((i = in.read()) != -1) {
  125.                         out.write(i);
  126.                         System.out.print(i);
  127.                     }
  128.                 } catch (IOException ex) {
  129.                     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
  130.                 } finally {
  131.                     try {
  132.                         out.flush();
  133.                         out.close();
  134.                     } catch (IOException ex) {
  135.                         Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
  136.                     }
  137.                     socket.close();
  138.                 }
  139.             }
  140.         }).start();
  141.         //发送文件的客户端
  142.         try {
  143.             Socket socket = new Socket(InetAddress.getLocalHost(), 7505);
  144.             try {
  145.                 socket.sendFileStream(new java.io.DataInputStream(new java.io.FileInputStream("G:/106372200_2.jpg")));
  146.             } catch (FileNotFoundException ex) {
  147.                 Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
  148.             }finally{
  149.                 socket.close();
  150.             }
  151.         } catch (UnknownHostException ex) {
  152.             Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
  153.         }
  154.     }    
  155. }

  运行后显示:

  1. init:
  2. deps-jar:
  3. Compiling 1 source file to G:/java/SocketTest/build/classes
  4. compile:
  5. run:
  6. 对客户端文字发送:
  7. SHOUCHAN-PC:50232 - SAY: Hello World
  8. socket1: server-_ .........
  9. SHOUCHAN-PC:50233 - SAY: Hello World
  10. socket2: server-_ .........
  11. SHOUCHAN-PC:50234 - SAY: Hello World
  12. socket3: server-_ .........
  13. SHOUCHAN-PC:50232 - SAY: bye
  14. socket1: server-_ .........
  15. SHOUCHAN-PC:50235 - SAY: Hello World
  16. socket4: server-_ .........
  17. SHOUCHAN-PC:50233 - SAY: bye
  18. socket2: server-_ .........
  19. SHOUCHAN-PC:50235 - SAY: bye
  20. socket4: server-_ .........
  21. SHOUCHAN-PC:50234 - SAY: bye
  22. socket3: server-_ .........
  23. 发送二进制文件
  24. 1
  25. 1
  26. 0
  27. 直接发送文件
  28. 25521625522401674707370011202802800255219067086676587779981012201312111112251819152029263130292628283236463932344435282840554144484952525231395761565060465152502551920118080010011170255196027002311100000000004635721025519605516021332451411000001230417518334965619819720213411312950145161177193223551668211413014620922524025521808110063016724219520065209319015511907540200967317011118221139107113135014448512208229197212183501462047812315422419611823129107180177157227461622412387451093499114172481759614675121316350178156130561971051261724143955821794186180132127873324221236125233189160831591608021021819619223037632332051217647148167251696246161102541971271015210981062102156347184255022117161241107137468462031416082226199200242301752525916462169125181134997819023018020311111672291361941254552811817424522389153132627674291591585998146539510148142811822669259458210173164242892072225799110616517315967212621071641951141131881406261716140117227165142351976483154955724313518990901342481117211619261611715524120131230451421311818619413322984652455524173951959074105214491441918925997681234823811821923932232085191137522172192251756518314717611319325126262542064110045241282241292181772232388124381831942271202061251076624093156214122241812121141185652441712312071811419622718168115753222921530213107185823315136169256935237205103261971402028623314913612520479216227212471344560253771124475318123324698916026704215586249174151351551231201745446253156146711761612101182148118243792423085452532713411321118189204239161105171231636126145212159106731863121014317881641822426918114224019517014212714910418721218564106021191382913521241401451457417011334159181956216559104115134402001761981531993365562372151477311855240234169310555141772022191403724820061129251215186221562141201184627710526372485201452461669115245175173185140192171871386199701302106711318417914215514211385254421429910329204681211688662031844161241223201912252514314123712311749149241178551010227190127341752193931857019225021212566015422454655172491650121311385736357815311521212925210749212195711701673591175230180123236141151819391196991122021132055289945618323915680119261808618338592031491837718713424312811583106119214151906010241210781151932376490128150200189562072371691391124254106133152962438014651214148131116251819334858142301462451713924914223714113456131429166613824320311133248117245166123107197591151979213982182023336210421292396722312013564189698916473155243171741622101084519724413911111221091322062101277324416610825115424015911592177211735158426013882233140212209720101199522121213691202101220891861229918965168891858518618320715215711322084154102175291983414823611321553127240206232252979161244170221682201979142671071141311462511313815165215529175111371022422281151852033336312774100135801821843201158416320222421219878431501461625012215271974215019241560582137723018728184818327019855127119254232219812414214718115014212712588193147198421638720913217410218325010023464227538730175169893314320698724978077168949221620152231106511086456207173216422426149931491291265237138184211188771271002341734115430233332072366116924219582183212173682401714214016717015967682323016347239891012221676123085155108127224952312356625416419223521817224414191225721349924423123339248839250361683613724929168153991469618780181041232051482371541051459076103208827016548158233961361209574129251205119103102215949612170177174226882412378714523326107193202421111361091220223721914520511123164219671061721422022252001022346362156801228617346149121230161204103135782046323018072238146104828821940224486219687455413127255217255
  29. 成功生成(总时间:1 秒)

插件的下载地址:

http://pickup.mofile.com/7553332224591073

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值