你是不是没有异常处理啊?import java.io.*;
import java.net.*;class ccc
{
      public static void main(String[] agrs)throws Exception
     {

        ServerSocket s = new ServerSocket(7777);
        Socket socket = s.accept();
        BufferedReader in = 
        new BufferedReader(
        new InputStreamReader(
        socket.getInputStream()));        String str  = "";
        while (true) 
       {  
          str = in.readLine();
       
          if (str.equals(".")) 
             break;
          System.out.println(str);
       }
    }
}

解决方案 »

  1.   

    以下是我测试用的客户端,与你的服务器端程序一起运行正常,你的客户端有问题吗?还有就是你的网络的问题了。
    import java.net.*;
    import java.io.*;public class TestSocketClient{
    public  static  void  main(String[]  args)
    {  
    String  serviceHost  =  "10.34.52.51";  
    int  servicePort  =  7777;  

    java.net.Socket  socket=null;
    BufferedReader reader=null;
    PrintWriter out=null;
    try
    {
    socket  =  new  java.net.Socket(serviceHost,servicePort);  
    System.out.println("client  socket:  "  +  socket); 

    reader = new BufferedReader (new InputStreamReader(System.in)); 

    out=new PrintWriter(socket.getOutputStream()); 

    String str="";
    do{
    str=reader.readLine();
    System.out.println("out:"+str);
    out.println(str);
    }while(!str.equals("."));

    }
    catch  (IOException  ex)
    {  
    ex.printStackTrace(); 
    }
    catch(Exception ex)
    {
    ex.printStackTrace();
    }
    finally
    {
    try
    {
    reader.close();
    out.close();
    socket.close();
    }
    catch  (IOException  ex)
    {  
    ex.printStackTrace();  

    }
    }
    }
      

  2.   

    你的客户端socket没有设置超时
      

  3.   

    读的时候不要直接用Buffered的方法实现InputStream。
    DataInputStream in=new DataInputStream(new BufferedInputStream(socket.getInputStream()));
    这样就ok了。
    DataInputStream 的方法也比较多。
    readLine()在java 1.4中已不推荐使用。
    建议使用readUTF();
      

  4.   

    换成用DataInputStream来读我也试过了,一样出现异常
    java.net.SocketException: Connection reset by peer: JVM_recv in socket input stream readto:zhang21cnboy
    请问你说的客户端socket没有设置超时是指什么?
    我用了
    Socket socket = s.accept();
    socket.setSoTimeout(20000);
    这样也不行
      

  5.   

    1、最好不要用readline()网络上传的都是字符,一般用读字节或字节数组的办法处理。
    2、要定义好两端传输的数据格式。并检查每次发送接受都是严格按协议格式的。
      

  6.   

    你的客户端socket被(异常)关闭了
      

  7.   

    班门弄斧试用本机充当s & c进行测试,192.168.0.1,可能影响的程序如防火墙关掉,正常运行可排除程序BUG。再放在局域网中测试。还不行确认TCP/IP协议正常。没看见你的完整服务器端、客户端程序。
      

  8.   

    New SocketExceptions in JDK1.1 This exception is raised when a connection is refused at the remote host (i.e., no process is listening on that port)你的"Connection reset by peer"异常是网络连接本身的问题.
    程序本身没有问题!
      

  9.   

    qazxsw1982103(波斯猫) 说的对,应该加入异常处理。