先谢谢大家的帮助客户端代码:
import java.io.*;
import java.net.*;public class Client{
Socket socket;
BufferedReader in;
PrintWriter out;
public Client(){
try{
socket = new Socket("127.0.0.1", 6666);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
PrintWriter bw=new PrintWriter(socket.getOutputStream());
String s=reader.readLine();
while(s!="bye"){
bw.println(s);
//bw.write(s);
System.out.println(s);
System.out.println(in.readLine());
s=reader.readLine();
}

out.close();
in.close();
socket.close();
}catch (IOException e){}
}
public static void main(String[] args){
new Client();
}
}
服务器端
import java.net.*;
import java.io.*;public class Server
{
public Server(){
try{
ServerSocket ss = new ServerSocket(6666);
while (true){
Socket socket = ss.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader bd=new BufferedReader(new InputStreamReader(System.in));
String line = bd.readLine();
System.out.println("Client:" + in.readLine());
while(line!="bye"){
out.println(line);
out.flush();
System.out.println("Cilnt input:"+in.readLine());
System.out.println("You input:"+line);
line=bd.readLine();

}
out.close();
in.close();
socket.close();
ss.close();
}
//ss.close();
}catch (IOException e){}
}
public static void main(String[] args){
new Server();
}
}
 我想客户端写入后,然后客户端和服务器端都显示输入的内容,然后服务器端输入,在客户端和服务器端都显示输入的内容,但是现在客户端输入后,在客户端显示,但是服务器端没有反应?

解决方案 »

  1.   

    你最好应该这样写:
    客户端:import java.io.*;
    import java.net.*;public class Client{
        Socket socket;
        BufferedReader in;
        BufferedReader reader;
        PrintWriter out;
        public Client(){
            try{
                socket = new Socket("127.0.0.1", 6666);
                in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                reader=new BufferedReader(new InputStreamReader(System.in));
                out=new PrintWriter(socket.getOutputStream());
                String s=reader.readLine();
                while(!s.equals("bye")){
                    out.println(s);
                    out.flush();
                    System.out.println(s);
                    System.out.println(in.readLine());
                    s=reader.readLine();
                }
                out.println("bye");
                reader.close();    
                out.close();
                in.close();
                socket.close();
            }catch (IOException e){}
        }
        public static void main(String[] args){
            new Client();
        }
    }服务端:import java.net.*;
    import java.io.*;public class Server
    {
        public Server(){
            try{
                ServerSocket ss = new ServerSocket(6666);
                while (true){
                    Socket socket = ss.accept();
                    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    PrintWriter out = new PrintWriter(socket.getOutputStream());
                    BufferedReader bd=new BufferedReader(new InputStreamReader(System.in));
                    String line = in.readLine();
                    System.out.println("Client:" + line);
                    while(!line.equals("bye")){
                     String input=bd.readLine();
                     System.out.println("You input:"+input);
                     out.println(input);
                        out.flush();
                        line=in.readLine();
                        System.out.println("Cilnt input:"+line);
                    }
                    out.close();
                    in.close();
                    socket.close();
                    ss.close();
                }
                //ss.close();
            }catch (IOException e){}
        }
        public static void main(String[] args){
            new Server();
        }
    }
      

  2.   

    看了LZ的代码,感觉需求怪怪的。
    你客户端输入后,在客户端显示,但是服务器端没有反应? 
    知道为什么服务器没反应吗?服务器运行到这块停了,如下:
     BufferedReader bd=new BufferedReader(new InputStreamReader(System.in));
                    String line = bd.readLine();等着你服务器输入后,它才会接着向下运行,之后你客户端输入的内容才会在服务器上有显示。
    代码结构组织的很怪啊。。
      

  3.   

    BufferedReader bd=new BufferedReader(new InputStreamReader(System.in));
                    String line = bd.readLine();
    这里一直等待输入的。
      

  4.   

    netbean里貌似没有任何报错啊,你是不是运行次数太多了,线程多了,所以不能收发了