【发布时间】:2011-01-19 11:48:03
【问题描述】:
大家好,我已经创建了一些与客户端和服务器相关的程序。今天是我的客户端-服务器技术会话[实践考试]。
问题是:我要在服务器上添加两个从客户端发送的否,然后将结果返回给客户端。
我尝试了这个解决方案,但出现了一些奇怪的解决方案: 服务器.java
import java.net.*;
import java.io.*;
public class Server{
public static void main(String args[]) throws Exception{
ServerSocket s = new ServerSocket(7896);
Socket cs = s.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(cs.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(cs.getOutputStream()));
bw.write(br.read() + br.read());
}
}
客户端.java
import java.io.*;
import java.net.*;
public class Client{
public static void main(String args[]) throws Exception{
Socket s = new Socket("localhost", 7896);
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write(3);
bw.write(4);
System.out.println("Output is: " + br.read());
}
}
当我在 dos 提示符下运行它时,我得到了两个空白屏幕;一个在客户端站点,一个在服务器站点(这有点令人惊讶)。然后我关闭了服务器然后突然我在客户端收到错误消息,例如连接关闭。
然后我在我的 ubuntu linux 上使用与 windows 中相同的 jdk 1.6 运行相同的程序,这里也是空白屏幕,但是当我关闭服务器时,我得到了:
Output is: -1
虽然在考试中我使用 DataOutputStream 和 DataInputStream 完成了这项工作。
但是为什么上面的代码不起作用。
任何人都可以解释那里的代码发生了什么。
谢谢
【问题讨论】:
标签: java networking