import java.io.*;
import java.net.*;
class chatserver{
public static void main(String a[]) throws Exception{
ServerSocket ss=new ServerSocket(2000);
Socket cs=ss.accept();
System.out.println("i get it!");
InputStreamReader isr=new InputStreamReader(cs.getInputStream());
BufferedReader br=new BufferedReader(isr);
if(br.ready()==true){
System.out.println("i am ready to read!");
System.out.println((char)(br.read()));
try{
System.out.println(br.readLine());
                            System.out.println(br.readLine());
}catch(Exception e){}
}

}
}
试试

解决方案 »

  1.   

    这位兄台好象仅仅是在try[]语句里多加了一句System.out.println(br.readLine());而已啊。这样不可能有用吧?因为就是System.out.println(br.readLine());这句话出的问题,第一句System.out.println(br.readLine());出问题后,后面就不再执行,转而去执行catch()里的东西了。你多加一句System.out.println(br.readLine());可以说是毫无意义。请再帮忙想想。
      

  2.   

    把System.out.println((char)(br.read()));去掉试试
      

  3.   

    我程序中本来就不想用System.out.println((char)(br.read()));这句的。但因为System.out.println(br.readLine());出错,我为了先检测一下server端是否能收到消息才用System.out.println((char)(br.read()));的。结果,System.out.println((char)(br.read()));是正常的,可以读出客户端发过来的字符串中的第一个字符。但System.out.println(br.readLine());则怎样也不行。所以,跟System.out.println((char)(br.read()));是无关的。请各位再帮忙想想!谢谢!
      

  4.   

    感觉不是readLine()函数有问题。
    你用e.printStackTrace()把错误打出来看看。
      

  5.   

    String temp;
    if((temp=br.readLine())!=null)
    {
    System.out.println("i am ready to read!");
    try{
    System.out.println(temp);
                           

    }
      

  6.   

    mzhenjun(mzhenjun)兄,你说的方法还是不行。主要是一旦执行到br.readLine(),程序就立即抛出异常。异常内容如下:
    java.net.SocketException:Connection reset by peer:JVM_recv in socket input stream read
        at java.......后面在那些行出现异常就不必说了吧。大家帮我看看上面这个异常是怎么回事吧。
      

  7.   

    代码没有任何问题。我在JBuilder9下调试通过。