这个插件包装了关于java Socket的一些比较常用的方法 使Socket用起来比较方便
- package sockettest;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.net.InetAddress;
- import java.net.UnknownHostException;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import org.shouchan.socket.impl.Socket;
- /**
- *
- * @author SHOUCHAN
- */
- public class Main {
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- System.out.println("对客户端文字发送:");
- //接受文字的服务器
- new Thread(new Runnable() {
- public void run() {
- Socket socket = new Socket(9000);
- int i = 0;
- while(i < 4){
- Socket sk = socket.bindSocket();
- server(sk);
- i++;
- }
- }
- }).start();
- //发送文字的客户端(4个客户端)
- Socket socket1 = null;
- Socket socket2 = null;
- Socket socket3 = null;
- Socket socket4 = null;
- try {
- socket1 = new Socket(InetAddress.getLocalHost(), 9000);
- socket1.sendValue("Hello World");
- System.out.println("socket1: " + socket1.getValue());
- socket2 = new Socket(InetAddress.getLocalHost(), 9000);
- socket2.sendValue("Hello World");
- System.out.println("socket2: " + socket2.getValue());
- socket3 = new Socket(InetAddress.getLocalHost(), 9000);
- socket3.sendValue("Hello World");
- System.out.println("socket3: " + socket3.getValue());
- socket1.sendValue("bye");
- System.out.println("socket1: " + socket1.getValue());
- socket4 = new Socket(InetAddress.getLocalHost(), 9000);
- socket4.sendValue("Hello World");
- System.out.println("socket4: " + socket4.getValue());
- socket2.sendValue("bye");
- System.out.println("socket2: " + socket2.getValue());
- socket4.sendValue("bye");
- System.out.println("socket4: " + socket4.getValue());
- socket3.sendValue("bye");
- System.out.println("socket3: " + socket3.getValue());
- } catch (UnknownHostException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- } finally {
- socket1.close();
- socket2.close();
- socket3.close();
- socket4.close();
- }
- System.out.println("/n发送二进制文件");
- //发送二进制文件
- test1();
- System.out.println("/n直接发送文件");
- //直接发送文件
- test2();
- }
- public static void server(final Socket socket) {
- new Thread(new Runnable() {
- public void run() {
- while (true) {
- String value = socket.getValue();
- String host = socket.getSocket().getInetAddress().getHostName();
- int port = socket.getSocket().getPort();
- System.out.println(host + ":" + port + " - SAY: " + value);
- socket.sendValue("server-_ .........");
- if (value.equals("bye")) {
- socket.close();
- break;
- }
- }
- }
- }).start();
- }
- //发送二进制文件
- public static void test1() {
- //服务端
- new Thread(new Runnable() {
- public void run() {
- Socket socket = new Socket(7000);
- byte[] v = socket.getFileValue(3);
- System.out.println(v[0] + "/n" + v[1] + "/n" + v[2]);
- socket.close();
- }
- }).start();
- //客户端
- try {
- Socket socket = new Socket(InetAddress.getLocalHost(), 7000);
- socket.sendFileValue(new byte[]{1, 1, 0});
- socket.close();
- } catch (UnknownHostException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- //直接发送文件
- public static void test2() {
- //接受文件的服务器
- new Thread(new Runnable() {
- public void run() {
- Socket socket = new Socket(7505).bindSocket();
- java.io.DataInputStream in = socket.getFileStream();
- java.io.DataOutputStream out = null;
- try {
- out = new java.io.DataOutputStream(new java.io.FileOutputStream("G:/123.jpg"));
- } catch (FileNotFoundException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- int i = 0;
- try {
- while ((i = in.read()) != -1) {
- out.write(i);
- System.out.print(i);
- }
- } catch (IOException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- } finally {
- try {
- out.flush();
- out.close();
- } catch (IOException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- socket.close();
- }
- }
- }).start();
- //发送文件的客户端
- try {
- Socket socket = new Socket(InetAddress.getLocalHost(), 7505);
- try {
- socket.sendFileStream(new java.io.DataInputStream(new java.io.FileInputStream("G:/106372200_2.jpg")));
- } catch (FileNotFoundException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }finally{
- socket.close();
- }
- } catch (UnknownHostException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
运行后显示:
- init:
- deps-jar:
- Compiling 1 source file to G:/java/SocketTest/build/classes
- compile:
- run:
- 对客户端文字发送:
- SHOUCHAN-PC:50232 - SAY: Hello World
- socket1: server-_ .........
- SHOUCHAN-PC:50233 - SAY: Hello World
- socket2: server-_ .........
- SHOUCHAN-PC:50234 - SAY: Hello World
- socket3: server-_ .........
- SHOUCHAN-PC:50232 - SAY: bye
- socket1: server-_ .........
- SHOUCHAN-PC:50235 - SAY: Hello World
- socket4: server-_ .........
- SHOUCHAN-PC:50233 - SAY: bye
- socket2: server-_ .........
- SHOUCHAN-PC:50235 - SAY: bye
- socket4: server-_ .........
- SHOUCHAN-PC:50234 - SAY: bye
- socket3: server-_ .........
- 发送二进制文件
- 1
- 1
- 0
- 直接发送文件
- 25521625522401674707370011202802800255219067086676587779981012201312111112251819152029263130292628283236463932344435282840554144484952525231395761565060465152502551920118080010011170255196027002311100000000004635721025519605516021332451411000001230417518334965619819720213411312950145161177193223551668211413014620922524025521808110063016724219520065209319015511907540200967317011118221139107113135014448512208229197212183501462047812315422419611823129107180177157227461622412387451093499114172481759614675121316350178156130561971051261724143955821794186180132127873324221236125233189160831591608021021819619223037632332051217647148167251696246161102541971271015210981062102156347184255022117161241107137468462031416082226199200242301752525916462169125181134997819023018020311111672291361941254552811817424522389153132627674291591585998146539510148142811822669259458210173164242892072225799110616517315967212621071641951141131881406261716140117227165142351976483154955724313518990901342481117211619261611715524120131230451421311818619413322984652455524173951959074105214491441918925997681234823811821923932232085191137522172192251756518314717611319325126262542064110045241282241292181772232388124381831942271202061251076624093156214122241812121141185652441712312071811419622718168115753222921530213107185823315136169256935237205103261971402028623314913612520479216227212471344560253771124475318123324698916026704215586249174151351551231201745446253156146711761612101182148118243792423085452532713411321118189204239161105171231636126145212159106731863121014317881641822426918114224019517014212714910418721218564106021191382913521241401451457417011334159181956216559104115134402001761981531993365562372151477311855240234169310555141772022191403724820061129251215186221562141201184627710526372485201452461669115245175173185140192171871386199701302106711318417914215514211385254421429910329204681211688662031844161241223201912252514314123712311749149241178551010227190127341752193931857019225021212566015422454655172491650121311385736357815311521212925210749212195711701673591175230180123236141151819391196991122021132055289945618323915680119261808618338592031491837718713424312811583106119214151906010241210781151932376490128150200189562072371691391124254106133152962438014651214148131116251819334858142301462451713924914223714113456131429166613824320311133248117245166123107197591151979213982182023336210421292396722312013564189698916473155243171741622101084519724413911111221091322062101277324416610825115424015911592177211735158426013882233140212209720101199522121213691202101220891861229918965168891858518618320715215711322084154102175291983414823611321553127240206232252979161244170221682201979142671071141311462511313815165215529175111371022422281151852033336312774100135801821843201158416320222421219878431501461625012215271974215019241560582137723018728184818327019855127119254232219812414214718115014212712588193147198421638720913217410218325010023464227538730175169893314320698724978077168949221620152231106511086456207173216422426149931491291265237138184211188771271002341734115430233332072366116924219582183212173682401714214016717015967682323016347239891012221676123085155108127224952312356625416419223521817224414191225721349924423123339248839250361683613724929168153991469618780181041232051482371541051459076103208827016548158233961361209574129251205119103102215949612170177174226882412378714523326107193202421111361091220223721914520511123164219671061721422022252001022346362156801228617346149121230161204103135782046323018072238146104828821940224486219687455413127255217255
- 成功生成(总时间:1 秒)
插件的下载地址:
http://pickup.mofile.com/7553332224591073