在这段代码中,为什么server打印不出任何东西??import java.net.*;
import java.io.*;
public class Server{
public static void main(String[] ages){
ServerSocket ss = null;
Socket s2 = null;
try{
ss = new ServerSocket(6666);
}catch(IOException io){}
try{
s2 = ss.accept();
System.out.println("欢迎光临");
BufferedReader b2 = new BufferedReader(new InputStreamReader(s2.getInputStream()));

String s = b2.readLine();
while(!s.equals("bye")){
System.out.print(s);
}

}catch(IOException io){}
}
}import java.net.*;
import java.io.*;
public class Client{
public static void main(String[] ages) throws Exception{
Socket s1 = new Socket("127.0.0.1",6666);
BufferedReader b1 = new BufferedReader(new InputStreamReader(System.in));
String s = b1.readLine();
}
}

解决方案 »

  1.   

    有一端应该写出去,不是都读BufferedReader
      

  2.   

    server的结构就不对...s2 = ss.accept(); 
    应该在一个死循环内 保持一直监听client
    你根本没有发数据到server....
    所以s2 = ss.accept(); 没有执行
      

  3.   

    Client 要 Output不然何来 Server 的数据
      

  4.   

    Try this :SocketServerimport java.io.*;
    import java.net.*;public class SocketServer { public static void main(String[] args) {
    ServerSocket ss = null;
    Socket s = null;
    try {
    ss = new ServerSocket(1234);
    s = ss.accept(); BufferedReader br = new BufferedReader(new InputStreamReader(s
    .getInputStream()));
    String line; while (true) {
    line = br.readLine();
    if (line != null){
    System.out.println(line);
    if(line.equalsIgnoreCase("bye"))
    break;
    }
    else
    break;
    }
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    try {
    s.close();
    ss.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }}SocketClientimport java.io.*;
    import java.net.*;public class SocketClient { public static void main(String[] args) {
    Socket s = null;

    try {
    s = new Socket("localhost",1234);
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
    BufferedReader b1 = new BufferedReader(new InputStreamReader(System.in)); 
    String line = null;
    while(true){
    line = b1.readLine();
    if(line != null){
    bw.write(line + "\r\n");
    bw.flush();
    if(line.equalsIgnoreCase("bye"))
    break;
    }else
    break;
    } } catch (UnknownHostException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }finally{
    try {
    s.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    }
      

  5.   

    public void run() {


    try {

    ss = new ServerSocket(8988);
    cs = ss.accept();

    } catch (IOException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    }
    最好还是用 线程 别用死循环先