線程demo:java
線程:socket
package com.company.s5; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Socket; public class BeginThread extends Thread { private Socket socket; public BeginThread(Socket socket) { super(); this.socket=socket; } @Override public void run() { try { InputStream inputStream=socket.getInputStream(); InputStreamReader reader=new InputStreamReader(inputStream); char[] charArray=new char[1000]; int readLength=-1; while ((readLength=reader.read(charArray))!=-1){ String newstring=new String(charArray,0,readLength); System.out.println(newstring); } reader.close(); inputStream.close(); socket.close(); }catch (Exception e){ e.printStackTrace(); } } }
服務端ide
package com.company.s5; import java.net.ServerSocket; import java.net.Socket; public class BeginServer { public static void main(String[] args) throws Exception{ ServerSocket serverSocket=new ServerSocket(8888); int runTag=1; while (runTag==1){ Socket socket=serverSocket.accept(); BeginThread beginThread=new BeginThread(socket); beginThread.start(); } serverSocket.close(); } }
客戶端:this
package com.company.s5; import java.io.OutputStream; import java.net.Socket; public class BeginClient { public static void main(String[] args) throws Exception{ Socket socket=new Socket("localhost",8888); OutputStream outputStream=socket.getOutputStream(); outputStream.write("我是中國人".getBytes()); outputStream.close(); socket.close(); } }
線程池demo:spa
線程類.net
package com.company.s5; import java.io.InputStream; import java.net.Socket; public class ReadRunnable implements Runnable{ private Socket socket; public ReadRunnable(Socket socket) { super(); this.socket = socket; } @Override public void run() { try { InputStream inputStream=socket.getInputStream(); byte[] byteArray=new byte[100]; int readLength=inputStream.read(byteArray); while (readLength!=-1){ System.out.println(new String(byteArray,0,readLength)); readLength=inputStream.read(byteArray); } inputStream.close(); socket.close(); }catch (Exception e){ e.printStackTrace(); } } }
服務類線程
package com.company.s5; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.Executor; import java.util.concurrent.Executors; public class Server2 { private ServerSocket serverSocket; private Executor pool; public Server2(int port, int poolSize) { try { this.serverSocket = new ServerSocket(port); this.pool = Executors.newFixedThreadPool(poolSize); }catch (Exception e){ e.printStackTrace(); } } public void startService(){ try { for(;;){//無限循環 Socket socket=serverSocket.accept(); pool.execute(new ReadRunnable(socket)); } }catch (Exception e){ e.printStackTrace(); } } public static void main(String[] args) { Server2 server2=new Server2(8088,10000); server2.startService(); } }
客戶端類code
package com.company.s5; import java.io.OutputStream; import java.net.Socket; public class BeginClient { public static void main(String[] args) throws Exception{ Socket socket=new Socket("localhost",8088); OutputStream outputStream=socket.getOutputStream(); outputStream.write("我是中國人".getBytes()); outputStream.close(); socket.close(); } }