Java Socketマルチスレッドプログラミング、百万レベルのデータ同時処理.
ネット上の大神が分かち合うコードに感謝して、それから私达のプロジェクトの需要によって、残りのコードに組み立てて、基本的に大体のフレームワークはこのモードで、修正する必要があるのは業務のデータの伝達で、その他はすべて修正する必要はありません.
他人のコードを学ぶことに基づいて、他人の分かち合いの精神をマスターして、そのため私を2日かけて研究したコードを分かち合います(夜の时間).
ServerSocket :
顧客A側のコード:
顧客B側のコード:
他人のコードを学ぶことに基づいて、他人の分かち合いの精神をマスターして、そのため私を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); // ,
}
}
}