Java Socketマルチスレッドプログラミング、百万レベルのデータ同時処理.


ネット上の大神が分かち合うコードに感謝して、それから私达のプロジェクトの需要によって、残りのコードに組み立てて、基本的に大体のフレームワークはこのモードで、修正する必要があるのは業務のデータの伝達で、その他はすべて修正する必要はありません.
他人のコードを学ぶことに基づいて、他人の分かち合いの精神をマスターして、そのため私を2日かけて研究したコードを分かち合います(夜の时間).
ServerSocket :
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.Buffer;


public class TalkServer {

	public static void main(String[] args) throws IOException{
		ServerSocket server = new ServerSocket(5203);
		while(true){
			Socket socket = server.accept();
			exSocketServer(socket);
		}
	}
	public static void exSocketServer(final Socket socket){
		
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				BufferedReader in = null; 
				PrintWriter out = null; 
				try {
					in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
					out=new PrintWriter(socket.getOutputStream());
					while(true){
						String msg =in.readLine();
						if(msg == null){
							break;
						}
						System.out.println("Client :"+msg);
						//        。
						out.println("OK !");
						out.flush();
						
					}
				}catch(Exception e){
					//e.printStackTrace();
					System.out.println("Error:"+e);
				}finally {
					try {
						in.close();
						out.close();
						socket.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
				}
				
				
				
			}
		}).start();
	}
}

顧客A側のコード:
import java.io.*;

import java.net.*;

public class TalkClient {

			public static void main(String args[]) {
				String rootPath=TalkClient.class.getResource("/").getFile().toString();  
		    	String fileName =rootPath+"Initialize.txt";
				
					String file = "my name is YI! nice to meet you";//ReadFromFile.readFileByLinesln(fileName);
					exSocket(file);
		}
			
			public static void exSocket(String file){
				try{
					InetAddress addr = InetAddress.getByName("localhost");   
					Socket socket=new Socket(addr,5203);
					BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
					PrintWriter out=new PrintWriter(socket.getOutputStream());
					for(int i =0 ;i<1000000;i++){
					String readline= file+i+"AAAA" ;;  //sin.readLine(); //             
					//                 Server
					out.println(readline);
					//     , Server        
					out.flush();
					System.out.println("Client:"+readline);
					
					
					System.out.println("Servlet :"+in.readLine());
					}
					socket.close(); //  Socket
					
					
					}catch(Exception e) {
					
					System.out.println("Error"+e); //  ,       
					
					}
				
			}

}

顧客B側のコード:
import java.io.*;

import java.net.*;

public class TalkClient {

			public static void main(String args[]) {
				String rootPath=TalkClient.class.getResource("/").getFile().toString();  
		    	String fileName =rootPath+"Initialize.txt";
				
					String file = "my name is YI! nice to meet you";//ReadFromFile.readFileByLinesln(fileName);
					exSocket(file);
		}
			
			public static void exSocket(String file){
				try{
					InetAddress addr = InetAddress.getByName("localhost");   
					Socket socket=new Socket(addr,5203);
					BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
					PrintWriter out=new PrintWriter(socket.getOutputStream());
					for(int i =0 ;i<1000000;i++){
					String readline= file+i+"BBBB" ;;  //sin.readLine(); //             
					//                 Server
					out.println(readline);
					//     , Server        
					out.flush();
					System.out.println("Client:"+readline);
					
					
					System.out.println("Servlet :"+in.readLine());
					}
					socket.close(); //  Socket
					
					
					}catch(Exception e) {
					
					System.out.println("Error"+e); //  ,       
					
					}
				
			}

}