public static void main(String[] args) 
{
ServerSocket ss = new ServerSocket(10101);
Socket sock = ss.accept();
BufferedReader bufrIn = 
new BufferedReader(new InputStreamReader(sock.getInputStream()));
BufferedWriter bufw = 
new BufferedWriter(new FileWriter("server.txt")); 
PrintWriter pw = new PrintWriter();
String key = bufrIn.readLine();//从这里
String lineIn = null;
while(true){
lineIn = bufrIn.readLine();
if(key.equals(lineIn))//到这里,有点看不懂,请高手们帮忙解答
break;
bufw.write(lineIn);
bufw.newLine();
}
PrintWriter pw = new PrintWriter(sock.getOutputStream());
现在发上来的是一部分服务端的主程序

解决方案 »

  1.   

    String key = bufrIn.readLine();//从socket中读一行
    String lineIn = null; 
    while(true){ 
    lineIn = bufrIn.readLine();   //同上 
    if(key.equals(lineIn))        //如果两个字符串内容相同 
      

  2.   

    你只给这么一小段,谁知道它全局是想干什么?只是连续从socket中读两行
    如果内容一样,就结束循环...不一样就写到server.txt里,然后再从socket读一行和第一次读的比较...等等如此估计是为了记录socket流中
    第一行字符串和再次出现此字符串之间所有的句子
      

  3.   

    呵呵,我来解释一下
    String key = bufrIn.readLine();//从这里 读取了一个结束标志,表示我后面的数据,如果和这个相同,那么我的输入结束了lineIn = bufrIn.readLine(); // 读一行数据
    if(key.equals(lineIn))// 如果等于前面的结束标志,那么结束,否则写入文件。
    break;
    其实,这是一种约定的协议。输入总得有结束吧,呵呵呵!
      

  4.   

    举个例子帮助理解。
    服务器接受流规定:End为字符接受开始和结束标志
    客户端发送的流格式:
    End                                 //这个就是key的值
    发送的实际内容 //进入while循环 
    End                                 //lineIn最后读取到的内容此时key.equals(key)为真,本次数据接受结束