Java Socket多线程服务端、客户端
- //主方法
- packagecom.huhai.demo.socket;
- publicclassMain{
- /**功能说明:
- *@paramargs
- *@author胡海
- *@throwsInterruptedException
- *@since2011-11-8下午05:08:05
- */
- publicstaticvoidmain(String[]args)throwsInterruptedException{
- ThreadserverTthread=newThread(newRunnable(){
- publicvoidrun(){
- newSocketServer();
- }
- });
- serverTthread.start();
- Thread.sleep(1000);
- ThreadclientThread=newThread(newRunnable(){
- publicvoidrun(){
- newSocketClient();
- }
- });
- clientThread.start();
- }
- }
- //客户端
- <prename="code"class="java">packagecom.huhai.demo.socket;
- importjava.io.BufferedReader;
- importjava.io.InputStreamReader;
- importjava.io.PrintWriter;
- importjava.net.Socket;
- publicclassSocketClient{
- privateSocketsocket;
- privateintport=10000;
- privateStringhostIp="127.0.0.1";
- publicSocketClient(){
- try{
- Stringmessage=null;
- BufferedReaderin=null;
- PrintWriterout=null;
- BufferedReaderline=null;
- while(!SocketCommand.CONST_QUIT.equals(message)){
- socket=newSocket(hostIp,port);
- in=newBufferedReader(newInputStreamReader(socket.getInputStream()));
- out=newPrintWriter(socket.getOutputStream(),true);
- line=newBufferedReader(newInputStreamReader(System.in));
- System.out.println("pleaseinputsomecharacters:");
- message=line.readLine();
- out.println(message);
- System.out.println("Backmessagefromserver:["+in.readLine()+"]");
- }
- System.out.println("Clientexit.");
- line.close();
- out.close();
- in.close();
- socket.close();
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- publicstaticvoidmain(String[]args){
- newSocketClient();
- }
- }
//服务端
- packagecom.huhai.demo.socket;
- importjava.io.BufferedReader;
- importjava.io.IOException;
- importjava.io.InputStreamReader;
- importjava.io.PrintWriter;
- importjava.net.ServerSocket;
- importjava.net.Socket;
- importjava.util.concurrent.ExecutorService;
- importjava.util.concurrent.Executors;
- publicclassSocketServer{
- privateServerSocketserverSocket;
- privateSocketsocket;
- privateintport=10000;
- privateExecutorServiceexecuteService=Executors.newFixedThreadPool(10);
- publicSocketServer(){
- try{
- serverSocket=newServerSocket(port);
- //serverSocket=newServerSocket(port,10,InetAddress.getByName("192.168.1.102"));
- System.out.println("SocketServerhavebeenstarted.["+serverSocket+"]");
- while(true){
- socket=serverSocket.accept();
- executeService.submit(newRunnable(){
- publicvoidrun(){
- try{
- BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));
- PrintWriterout=newPrintWriter(socket.getOutputStream(),true);
- Stringline=in.readLine();
- System.out.println("ServerReceived:["+line+"]");
- out.println("ServerReceived:["+line+"]");
- out.close();
- in.close();
- }catch(Exceptione){
- e.printStackTrace();
- }finally{
- try{
- socket.close();
- }catch(IOExceptione){
- System.out.println("closesocketerror.");
- e.printStackTrace();
- }
- }
- }
- });
- }
- }catch(Exceptione){
- e.printStackTrace();
- }finally{
- try{
- if(null!=serverSocket){
- serverSocket.close();
- System.out.println("serverSocketclose");
- }
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- }
- publicstaticvoidmain(String[]args){
- newSocketServer();
- }
- }
//常量
- packagecom.huhai.demo.socket;
- publicclassSocketCommand{
- publicstaticfinalStringCONST_QUIT="quit";
- }
运行结果:
上一篇:
JFace Dialog 调整大小
- //主方法
- packagecom.huhai.demo.socket;
- publicclassMain{
- /**功能说明:
- *@paramargs
- *@author胡海
- *@throwsInterruptedException
- *@since2011-11-8下午05:08:05
- */
- publicstaticvoidmain(String[]args)throwsInterruptedException{
- ThreadserverTthread=newThread(newRunnable(){
- publicvoidrun(){
- newSocketServer();
- }
- });
- serverTthread.start();
- Thread.sleep(1000);
- ThreadclientThread=newThread(newRunnable(){
- publicvoidrun(){
- newSocketClient();
- }
- });
- clientThread.start();
- }
- }
- //客户端
- <prename="code"class="java">packagecom.huhai.demo.socket;
- importjava.io.BufferedReader;
- importjava.io.InputStreamReader;
- importjava.io.PrintWriter;
- importjava.net.Socket;
- publicclassSocketClient{
- privateSocketsocket;
- privateintport=10000;
- privateStringhostIp="127.0.0.1";
- publicSocketClient(){
- try{
- Stringmessage=null;
- BufferedReaderin=null;
- PrintWriterout=null;
- BufferedReaderline=null;
- while(!SocketCommand.CONST_QUIT.equals(message)){
- socket=newSocket(hostIp,port);
- in=newBufferedReader(newInputStreamReader(socket.getInputStream()));
- out=newPrintWriter(socket.getOutputStream(),true);
- line=newBufferedReader(newInputStreamReader(System.in));
- System.out.println("pleaseinputsomecharacters:");
- message=line.readLine();
- out.println(message);
- System.out.println("Backmessagefromserver:["+in.readLine()+"]");
- }
- System.out.println("Clientexit.");
- line.close();
- out.close();
- in.close();
- socket.close();
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- publicstaticvoidmain(String[]args){
- newSocketClient();
- }
- }
//服务端
- packagecom.huhai.demo.socket;
- importjava.io.BufferedReader;
- importjava.io.IOException;
- importjava.io.InputStreamReader;
- importjava.io.PrintWriter;
- importjava.net.ServerSocket;
- importjava.net.Socket;
- importjava.util.concurrent.ExecutorService;
- importjava.util.concurrent.Executors;
- publicclassSocketServer{
- privateServerSocketserverSocket;
- privateSocketsocket;
- privateintport=10000;
- privateExecutorServiceexecuteService=Executors.newFixedThreadPool(10);
- publicSocketServer(){
- try{
- serverSocket=newServerSocket(port);
- //serverSocket=newServerSocket(port,10,InetAddress.getByName("192.168.1.102"));
- System.out.println("SocketServerhavebeenstarted.["+serverSocket+"]");
- while(true){
- socket=serverSocket.accept();
- executeService.submit(newRunnable(){
- publicvoidrun(){
- try{
- BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));
- PrintWriterout=newPrintWriter(socket.getOutputStream(),true);
- Stringline=in.readLine();
- System.out.println("ServerReceived:["+line+"]");
- out.println("ServerReceived:["+line+"]");
- out.close();
- in.close();
- }catch(Exceptione){
- e.printStackTrace();
- }finally{
- try{
- socket.close();
- }catch(IOExceptione){
- System.out.println("closesocketerror.");
- e.printStackTrace();
- }
- }
- }
- });
- }
- }catch(Exceptione){
- e.printStackTrace();
- }finally{
- try{
- if(null!=serverSocket){
- serverSocket.close();
- System.out.println("serverSocketclose");
- }
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- }
- publicstaticvoidmain(String[]args){
- newSocketServer();
- }
- }
//常量
- packagecom.huhai.demo.socket;
- publicclassSocketCommand{
- publicstaticfinalStringCONST_QUIT="quit";
- }
运行结果: