Socket和多线程ServerSocket
Socket端:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientBank {
private static String ip = "127.0.0.1";
private static int port = 9090;
private static Socket client = null;
public String sendLoginSalesmanDom(String dom)throws Exception{
String domXml = null;
try {
client = new Socket(ip,port);
InputStream in = client.getInputStream();
DataInputStream dataInput = new DataInputStream(in);
OutputStream out = client.getOutputStream();
DataOutputStream dataOut = new DataOutputStream(out);
dom = "sale00" + dom;
dataOut.writeUTF(dom);
domXml = dataInput.readUTF();
in.close();
dataInput.close();
out.close();
dataOut.close();
client.close();
return domXml;
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return domXml;
}
public String sendAndReturnRecardDom(String dom){
String domXml = null;
try {
client = new Socket(ip,port);
InputStream in = client.getInputStream();
DataInputStream dataInput = new DataInputStream(in);
OutputStream out = client.getOutputStream();
DataOutputStream dataOut = new DataOutputStream(out);
dom = "reca01" + dom;
dataOut.writeUTF(dom);
domXml = dataInput.readUTF();
in.close();
dataInput.close();
out.close();
dataOut.close();
client.close();
return domXml;
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return domXml;
}
}
多线程ServerSocket:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ServerBank {
private ExecutorService pool = Executors.newFixedThreadPool(45);
private static int port = 9090;
ServerSocket server = null;
public ServerBank(){
try {
server = new ServerSocket(port);
while(true){
Socket client = server.accept();
System.out.println("serverSocket server.accept(); ");
ServerBankThread serverThread = new ServerBankThread(client);
serverThread.start();
pool.execute(serverThread);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}