第一章 java网络编程入门_Receiver_Sender

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();
    }
  }
}

时间: 2024-10-25 20:07:32

第一章 java网络编程入门_Receiver_Sender的相关文章

第一章 java网络编程入门_Echo

//服务器端程序  EchoServer.java import java.io.*;import java.net.*;public class EchoServer {  private int port=8000;  private ServerSocket serverSocket; public EchoServer() throws IOException {    serverSocket = new ServerSocket(port);    System.out.printl

第一章 java网络编程入门_mailClient.java

import java.net.*;import java.io.*; public class MailSender{  private String smtpServer="smtp.mydomain.com";  //SMTP邮件服务器的主机名  //private String smtpServer="localhost";  private int port=25; public static void main(String[] args){    Me

第一章 java网络编程入门_Simple_test_ConnectException

import java.io.*;import java.net.*;public class SimpleServer {  public static void main(String args[])throws Exception {    ServerSocket serverSocket = new ServerSocket(8000,2);  //连接请求队列的长度为2    Thread.sleep(360000);   //睡眠6分钟  }} import java.io.*;i

第一章 java网络编程入门_EchoPlayer.java

import java.io.*;public class EchoPlayer {  public String echo(String msg) {    return "echo:"+msg;  }  public void talk()throws IOException {    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));    String msg=null;    whil

第一章 java网络编程入门_HTTPClient.java

import java.net.*;import java.io.*;public class HTTPClient {  String host="www.baidu.com";  int port=80;  Socket socket;    public void createSocket()throws Exception{    socket=new Socket("www.baidu.com",80);  } public void communicat

Java学习笔记—第十二章 Java网络编程入门

第十二章  Java网络编程入门 Java提供的三大类网络功能: (1)URL和URLConnection:三大类中最高级的一种,通过URL网络资源表达方式,可以很容易确定网络上数据的位置.利用URL的表示和建立,Java程序可以直接读入网络上所放的数据,或把自己的数据传送到网络的另一端. (2)Socket:又称"套接字",用于描述IP地址和端口(在Internet中,网络中的每台主机都有一个唯一的IP地址,而每台主机又通过提供多个不同端口来提供多种服务).在客户/服务器网络中,当客

java网络编程入门教程

网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网络编程的话也可以做到这么简单! 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.

java网络编程入门

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节.你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节. java.net包中提供了两种常见的网络协议的支持: TCP: TCP是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信.通常用于互联网协议,被称TCP / IP. UDP:UDP是用户数据报协议的缩写,一个无连接的协议.提供了应用程序之间要发送的数据的数据包. 本教程

【Java】Java网络编程菜鸟进阶:TCP和套接字入门

Java网络编程菜鸟进阶:TCP和套接字入门 JDK 提供了对 TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)这两个数据传输协议的支持.本文开始探讨 TCP. TCP 基础知识 在“服务器-客户端”这种架构中,服务器和客户端各自维护一个端点,两个端点需要通过网络进行数据交换.TCP 为这种需求提供了一种可靠的流式连接,流式的意思是传出和收到的数据都是连续的字节,没有对数据量进行大小限制.