楼主写的时候注意编码格式,有点乱,而且就服务器读取的那块儿还有问题,while循环连大括号都没有。不看了,给你一个写好的服务器客户端的代码吧,里边都有注释,你对照看一下。
public class FileServer{
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//1,服务器打开端口
ServerSocket ss = new ServerSocket(8889);
//2,获取socket对象。
Socket s = ss.accept();
//获取ip.
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"......connected");
//3,获取socket读取流,并装饰。
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//4,获取socket的输出流,并装饰。
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
String line = null;
while((line=bufIn.readLine())!=null){
System.out.println(line);
out.println(line.toUpperCase());
} //注意一下你写的格式
//关闭资源
s.close();
ss.close();
}
}
public class FileClient {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
//1,创建socket客户端对象。
Socket s = new Socket("10.1.31.66",8889);
//2,获取键盘录入。
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
//3,socket输出流。
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
//4,socket输入流,读取服务端返回的大写数据
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = null;
while((line=bufr.readLine())!=null){
if("over".equals(line))
break;
out.println(line);
//读取服务端发回的一行大写数。
String upperStr = bufIn.readLine();
System.out.println(upperStr);
}
s.close();
}
} |