码迷,mamicode.com
首页 > 编程语言 > 详细

第一章 java网络编程入门_Receiver_Sender

时间:2016-10-03 14:57:08      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:

import java.io.*;
import java.net.*;
public class Receiver {
  private int port=8000;
  private ServerSocket serverSocket;
  private static int stopWay=1;  //结束通信的方式
  private final int NATURAL_STOP=1; //自然结束
  private final int SUDDEN_STOP=2;  //突然终止程序
  private final int SOCKET_STOP=3;  //关闭Socket,再结束程序
  private final int INPUT_STOP=4;  //关闭输入流,再结束程序
  private final int SERVERSOCKET_STOP=5;  //关闭ServerSocket,再结束程序

  public Receiver() throws IOException {
    serverSocket = new ServerSocket(port);
    System.out.println("服务器已经启动");
  }

  private BufferedReader getReader(Socket socket)throws IOException{
    InputStream socketIn = socket.getInputStream();
    return new BufferedReader(new InputStreamReader(socketIn));
  }

  public void receive() throws Exception{
    Socket socket=null;
    socket = serverSocket.accept();
    BufferedReader br =getReader(socket);
    
    for(int i=0;i<20;i++) {
       String msg=br.readLine();
       System.out.println("receive:"+msg);
       Thread.sleep(1000);
       if(i==2){  //终止程序,结束通信
        if(stopWay==SUDDEN_STOP){
          System.out.println("突然终止程序");
          System.exit(0);
        }else if(stopWay==SOCKET_STOP){
          System.out.println("关闭Socket并终止程序");
          socket.close();
          break;
        }else if(stopWay==INPUT_STOP){
          System.out.println("关闭输入流并终止程序");
          socket.shutdownInput();
          break;
        }else if(stopWay==SERVERSOCKET_STOP){
          System.out.println("关闭ServerSocket并终止程序");
          serverSocket.close();
          break;
        }
      }  
    }
    
    if(stopWay==NATURAL_STOP){
      socket.close();
      serverSocket.close();
    }
  }  
 
  public static void main(String args[])throws Exception {
    if(args.length>0)stopWay=Integer.parseInt(args[0]);
    new Receiver().receive();
  }
}

//Sender.java

 

import java.net.*;
import java.io.*;
import java.util.*;
public class Sender {
  private String host="localhost";
  private int port=8000;
  private Socket socket;
  private static int stopWay=1;  //结束通信的方式
  private final int NATURAL_STOP=1; //自然结束
  private final int SUDDEN_STOP=2;  //突然终止程序
  private final int SOCKET_STOP=3;  //关闭Socket,再结束程序
  private final int OUTPUT_STOP=4;  //关闭输出流,再结束程序

  public Sender()throws IOException{
     socket=new Socket(host,port);
  }
  public static void main(String args[])throws Exception{
    if(args.length>0)stopWay=Integer.parseInt(args[0]);
    new Sender().send();
  }
  private PrintWriter getWriter(Socket socket)throws IOException{
    OutputStream socketOut = socket.getOutputStream();
    return new PrintWriter(socketOut,true);
  }

 
  public void send()throws Exception {
    PrintWriter pw=getWriter(socket);
    for(int i=0;i<20;i++){
      String msg="hello_"+i;
      pw.println(msg);
      System.out.println("send:"+msg);
      Thread.sleep(500);  
      if(i==2){  //终止程序,结束通信
        if(stopWay==SUDDEN_STOP){
          System.out.println("突然终止程序");
          System.exit(0);
        }else if(stopWay==SOCKET_STOP){
          System.out.println("关闭Socket并终止程序");
          socket.close();
          break;
        }else if(stopWay==OUTPUT_STOP){
          socket.shutdownOutput();
 
        System.out.println("关闭输出流并终止程序");
          break;
        }
      }  
    }
    
    if(stopWay==NATURAL_STOP){
      socket.close();
    }
  }
}

 

第一章 java网络编程入门_Receiver_Sender

标签:

原文地址:http://www.cnblogs.com/wangminlomt5/p/5929093.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!