java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(is));
String cmd=null;
while(is.available()<1){}
cmd = br.readLine();
System.out.println("cmd: "+cmd);
if(cmd.equals("search")){
String[] param = br.readLine().split(",");
for(String s:param){
System.out.println(s);
}
这是接受服务器发送的字符串的客户端代码。但是在行cmd=br.readLine()...
中抛出异常连接重置错误..
服务器代码
Socket(InetAddress.getLocalHost(),1234);
OutputStream os = s.getOutputStream();InputStream is=s.getInputStream();
java.io.BufferedWriter bw=new java.io.BufferedWriter(new java.io.OutputStreamWriter(os));
String ss="search";
bw.println(ss);
bw.flush();
System.out.println("search cmded");
String param = "a,*,0,-1";
bw.println(param);
bw.flush();
System.out.println("param sent");
我尝试过使用print writer和bufferedwriter,但没有任何工作正常 那么可能的解决方案是什么?
另外值得一提的是我正在使用一个监听器服务,它创建一个上面提到的新服务器代码来处理特定的客户端请求...... 所以现在可以解决?答案 0 :(得分:0)
在服务器中,您的BufferedWriter
名为bw
,但您正在写信至pw
。
答案 1 :(得分:0)
摆脱available()测试。你有它回到前面,它无论如何都无效。 readLine()将在没有数据时阻塞。只需测试readLine()的返回值为null,然后中断。