首页 > 解决方案 > 客户端-服务器程序 - 基本差异和问题

问题描述

我有 2 个 Java 程序(1 个客户端和 1 个服务器),代码如下

我的问题是,为什么要使用缓冲阅读器?他对以下程序的目的是什么?为简单起见,不能只在客户端和服务器上使用 datainputstream/dataoutputstream 吗?他们仍然会交换信息对吗?

对不起,但我是编码新手:P

下面的代码:

服务器

import java.net.*;  
import java.io.*;  
class MyServerPing{  
public static void main(String args[])throws Exception{  
    System.out.println("PING SERVER");
    ServerSocket ss=new ServerSocket(3333);  
    Socket s=ss.accept();  

    DataInputStream din=new DataInputStream(s.getInputStream());  
    DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));  

    String str="",str2="";  
    while(!str.equals("stop")){  
        str=din.readUTF();  
        System.out.println("client says: "+str);  
        str2=br.readLine();  
        dout.writeUTF(str2);  
        dout.flush();  
    }  
    din.close();  
    s.close();  
    ss.close();  
    }
} 

客户

import java.net.*;  
import java.io.*;  
class MyClientPong{  
public static void main(String args[])throws Exception{  
    Socket s=new Socket("localhost",3333);  
    DataInputStream din=new DataInputStream(s.getInputStream());  
    DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));  

    String str="",str2="";  
    while(!str.equals("stop")){  
        str=br.readLine();  
        dout.writeUTF(str);  
        dout.flush();  
        str2=din.readUTF();  
        System.out.println("Server says: "+str2);  
    }  

    dout.close();  
    s.close();  
    }
}

谢谢,

标签: java

解决方案


推荐阅读