我建立了下面的socket连接,但是服务端程序没有运行。
Socket socket = new Socket("localhost",80);  <==socket 连接建立成功
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String str = in.readLine();  <=== 
执行到readLine()时程序暂停,请问客户端程序然后会怎么处理?

解决方案 »

  1.   

    给你个程序参考吧.import java.io.*;
    import java.net.*;class TalkClient{
    public TalkClient(){
    try{
    Socket socket=new Socket("127.0.0.1",4700);
    //talk.setText(str+"\n"+"客户端正在启动...");
    System.out.println("客户端正在启动...");
    BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
    PrintWriter os=new PrintWriter(socket.getOutputStream());
    BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String readline;
    readline=sin.readLine();
    while(!readline.equals("bye")){
    os.println(readline);
    os.flush();
    System.out.println("客户端:"+readline);
    System.out.println("服务器端:"+is.readLine());
    readline=sin.readLine();
    }
    os.close();
    is.close();
    socket.close();
    }catch(ConnectException e){
    System.out.println("服务器没有启动!"+e);
    }catch(Exception e){
    System.out.println(e);
    }
    }
    public static void main(String[] args)
    {
    new TalkClient();
    }
    }
      

  2.   

    谢谢如果这一句读不到输入呢: System.out.println("服务器端:"+is.readLine()); ?
    或者说服务端没有返回信息,怎么办?
      

  3.   

    socket.setSoTimeout(int timeout);