本帖最后由 郑传庆 于 2012-6-11 14:13 编辑  
 
  通过键盘向服务器端发送数据,而且客户端可以通过输入文本路径向服务器端发送文本的内容(格式如:D:\\me.txt)。服务器原样返回数据给客户端。 
  我的思路是: 
      客户端: 
   1、建立一个客户端Socket,传入相应的端口。 
   2、定义4个缓冲区,一个是接受从键盘输入的数据,一个是读取服务器端反会来的数据,一个是将客户端的数据发给服务端, 
     一个是用来读取文本数据的。 
   3、判断键盘输的字符是不是等于“end”,是就结束程序 
   4、关闭资源 
     服务器: 
   1、建立一个客户端ServerSocket,并监听客户端的端口。 
   2、定义2个缓冲区:一个是接收客户端的数据,一个是用来想客户端返回数据 
   3、关闭资源. 
 
随便考下大家一个小知识点,实现换行符有多少种实现方式?对于一下细节,有什么不懂的可以回我 
 
 /** 
  * @param args 
  * @throws IOException  
  * @throws   
  */ 
 public static void main(String[] args) throws  IOException { 
  Socket so = new Socket("169.254.101.68",8080); 
  BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); 
  BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(so.getOutputStream())); 
  BufferedReader bufin = new BufferedReader(new InputStreamReader(so.getInputStream())); 
   
  String lin = null; 
  while((lin = buf.readLine())!=null){ 
   if("end".equals(lin)){ 
    break; 
   } 
    File f = new File(lin); 
    if(f.exists()){ 
     BufferedReader bufs = new BufferedReader(new FileReader(f)); 
      String l = null; 
        while((l = bufs.readLine())!=null){ 
         bufw.write(l); 
        bufw.newLine(); 
        bufw.flush(); 
        String str = bufin.readLine(); 
        System.out.println(str); 
        } 
    }else{ 
    bufw.write(lin); 
    bufw.newLine(); 
    bufw.flush(); 
    String str = bufin.readLine(); 
    System.out.println(str); 
    } 
  } 
  buf.close(); 
  so.close(); 
 } 
 /** 
  * 服务端 
  * @author zcq 
  * 
  */ 
 public class Servers{ 
  public static void main(String args[]) throws IOException{ 
   ServerSocket server = new ServerSocket(8080); 
   Socket s =server.accept();//接受数据 
   BufferedReader buf = new BufferedReader(new InputStreamReader(s.getInputStream())); 
   BufferedWriter buffw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); 
   String ip = s.getInetAddress().getHostAddress(); 
   System.out.println(ip+".......连接成功!"); 
   String lin =null; 
   while((lin=buf.readLine())!=null){ 
    buffw.write(lin.toString()); 
    buffw.newLine(); 
    buffw.flush(); 
   } 
   s.close(); 
   server.close(); 
  } 
 } 
 |