因为要捕捉excption 所以把BufferedReader定义放在了try的外边并赋值为null。否则BufferedReader作为try中的局部变量finally 中
无法识别 但BufferedReader bufr=null;这样赋值是否正确
public static void main(String[] args) {
Socket s=null;
BufferedReader bufr=null;
try {
//建立客户端并连接到指定主机和端口
s=new Socket("127.0.0.1",10006);
//定义获取键盘录入的输入流对象
bufr=new BufferedReader(new InputStreamReader(System.in));
//定义Socket输出流,把键盘录入数据写入其中,发给服务端
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
//定义Socket输入流,接收服务器返回的反转后的数据
BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println("请输入一个字符串,它将上传至服务器反转之后返回。");
String line=null;
//当键盘录入不为空时,每读取一行就发给服务端,并把服务端返回的数据打印在客户端
while((line=bufr.readLine())!=null){
out.println(line);
String str=bufIn.readLine();
System.out.println("服务器反转后的字符串:"+str);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally{
if(s!=null)
try {//关闭资源
s.close();
bufr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
|
|