初学java,刚学到网络这节,试着写了个服务器端和客户端,调试了下,总是输出不了。大家看看要怎么修改,谢谢。 
import java.net.*;
import java.io.*;
public class TestSever{    public static void main(String[] args) throws Exception{        ServerSocket a=new ServerSocket(8888);        while(true){            Socket s=a.accept();            System.out.println("a client connect!");            InputStream x=s.getInputStream();            InputStreamReader p=new  InputStreamReader(x);            BufferedReader h=new BufferedReader(p);            System.out.println(h.readLine());            h.close();            p.close();            x.close();
        }
    }
}
import java.net.*;
import java.io.*;public class TestClient{    public static void main(String[] args) throws Exception{        Socket s=new Socket("127.0.0.1",8888);        OutputStream w=s.getOutputStream();        BufferedOutputStream q=new BufferedOutputStream(w);
        String l;        InputStreamReader c=new InputStreamReader(System.in);        BufferedReader d=new BufferedReader(c);                while(true){        l=d.readLine();        System.out.println(d.readLine());        q.write(l.getBytes(),0,l.length()-1);
                }        q.close();    }
}

解决方案 »

  1.   

    肯定不可以了 一台机子模拟同事模拟客户端和服务端 2个main怎么同事执行啊?
      

  2.   

    public static void main(String args[])
    {
    int port = Integer.parseInt(args[0]);

    try
    {
    ServerSocket srv = new ServerSocket(port);
    System.err.println("Echo server start at port: "+port);

    while (true)
    {
    Socket clnt = srv.accept();
    DataInputStream dataIn=new DataInputStream(new BufferedInputStream(clnt.getInputStream()));
    DataOutputStream dataOut=new DataOutputStream(new BufferedOutputStream(clnt.getOutputStream()));

    System.out.println("Clinet connected from: "+clnt.getInetAddress());
    String req=dataIn.readUTF();
    String send = req.toUpperCase();
    dataOut.writeUTF(send);
    dataOut.flush();

    dataIn.close();
    dataOut.close();
    }
    }
    catch(IOException ioe)
    {
    System.err.println(ioe);
    }
    }
      

  3.   

    你都没有write,服务器怎么收???
    加一句
    w.print("hello");
      

  4.   

    new PrintStream(w).print("hello");
      

  5.   

    1楼正解.在同一台机子上是不能同时模拟两个Mian()方法的..
      

  6.   


    我们上课模拟的时候 也是自己在自己的机器上模拟 SERVER AND CLIEN 端的 
    不是这个原因吧
      

  7.   


    我们上课模拟的时候 也是自己在自己的机器上模拟 SERVER AND CLIEN 端的 
    不是这个原因吧
      

  8.   

    楼主.请参考下我编的:import java.io.*;
    import java.net.*;
    public class TalkServer { public static void main(String[] args) {
    ServerSocket server=null;
    String line;
    try{
    server = new ServerSocket(4550);
    }catch(Exception e){
    System.out.println("Can't connect to the Client Socket!");
    System.exit(0);
    }
    Socket socket=null;
    try {
    socket = server.accept();
    } catch (IOException e) {
    e.printStackTrace();
    }
    try {
    BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    PrintWriter os = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
    BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Client:"+is.readLine());
    line = sin.readLine();
    if(!line.equals("bye")){
    os.println(line);
    os.flush();
    System.out.println("Server:"+line);
    System.out.println("Client:"+is.readLine());
    line=sin.readLine();
    }
    is.close();
    os.close();
    sin.close();

    } catch (IOException e) {

    e.printStackTrace();
    }

    }}
      

  9.   

    楼主.请参考下我编的:import java.io.*;
    import java.net.*;
    public class TalkServer { public static void main(String[] args) {
    ServerSocket server=null;
    String line;
    try{
    server = new ServerSocket(4550);
    }catch(Exception e){
    System.out.println("Can't connect to the Client Socket!");
    System.exit(0);
    }
    Socket socket=null;
    try {
    socket = server.accept();
    } catch (IOException e) {
    e.printStackTrace();
    }
    try {
    BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    PrintWriter os = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
    BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Client:"+is.readLine());
    line = sin.readLine();
    if(!line.equals("bye")){
    os.println(line);
    os.flush();
    System.out.println("Server:"+line);
    System.out.println("Client:"+is.readLine());
    line=sin.readLine();
    }
    is.close();
    os.close();
    sin.close();

    } catch (IOException e) {

    e.printStackTrace();
    }

    }}
      

  10.   


    import java.io.*;
    import java.net.*;
    public class TalkClient { public static void main(String[] args) {
    Socket socket =null;
    try{
    socket = new Socket("127.0.0.1",4550);
    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("Client:"+readline);
    System.out.println("Server"+is.readLine());
    readline = sin.readLine();
    }
    os.close();
    is.close();
    socket.close();
    }catch(Exception e){
    e.printStackTrace();
    System.out.println("Error"+e);
    } }}网速原因.多发了一次服务端的..见谅.