。你要在server打开一个writer,然后写进去

解决方案 »

  1.   

    就着么简单马?我里面有个writer但就是不行啊
    import java.net.*;
    import java.io.*;
    public class Server
    {
    static Socket socketarray[] = new Socket[100]; public Server(int port) throws IOException
    {
    ServerSocket serversocket = new ServerSocket( port );
            while (true)
    {
    Socket socket = serversocket.accept();
    new multithread( socket );
    }
    }

    public static void main(String args[]) throws Exception
    {
            int port = 8888;
    new Server(port);
    }
    }class multithread extends Thread
    {
    Socket client;
        public multithread(Socket socket )
    {
    this.client = socket;
            start();
        }
        public void run()
    {
    try
    {
    BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
                PrintWriter out = new PrintWriter(client.getOutputStream(), true);
                out.println( "您已经连接服务器...可以" );
    boolean flag = false;
    while (!flag)

    String line = in.readLine();
    if (line == null) flag = true;
    else
    {  
    System.out.println("接收到客户机发来的消息: "+line);
    out.println("服务器回应消息: " + line);
    if (line.trim().equals("BYE")) flag = true;
    }
    }
    client.close();
    }
    catch(Exception e){}
    }
    }
      

  2.   

    其实就是一个客户端与服务器端聊天的一个程序。现在客户端可以给服务器端发送消息。服务器端也可以收的到,但是服务器端无法接受键盘输入。所以无法给客户端主动发送信息。以上的代码是我的服务器端代码。怎样才能实现服务器端主动发送消息给客户端,我要求使用jdk。不用图形界面
      

  3.   


            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            in.readLine();把这两句话加到你想键盘输入的地方
      

  4.   

    对了,楼上的对:
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    String serverIn = in.readLine();再将serverIn放到server端中的out输出流中,就像while (!flag)

    String line = in.readLine();
    if (line == null) flag = true;
    else
    {  
    System.out.println("接收到客户机发来的消息: "+line);
    out.println("服务器回应消息: " + line);
    if (line.trim().equals("BYE"))flag = true;
    }
    }
    中一样,用
    out.println(serverIn );
    就可以输出到客户端了哦
      

  5.   

    我想大家可能没看明白楼主的需求
    楼主是想实现一个点对点的通讯程序对吧?
    要求大概是,A在stream里输入的东西,B能看到,并且B也能够通过键盘输入,也同样让A收到自己输入的信息;
    但很遗憾,dos下只是单前端进程的,如果你想实现这样的一个小聊天程序,那只能在applet,或swing这样有area概念的表现端做了~~~~
    PS:也想做这样一个东西的 :)
      

  6.   

    楼主你服务端在Socket socket = serversocket.accept();这里接到连接,那么这个和客户端的连接你作何处理?好像没看到你有用过啊?
      

  7.   

    不好意思,没看清楚.
    public void run() {
    try {
      BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
      PrintWriter out = new PrintWriter(client.getOutputStream(), true);
      out.println( "您已经连接服务器...可以" );
      boolean flag = false;
      while (!flag) {
        //在这个循环里加一发送本地消息的语句就可以了.out.println("xxxx");
        //不过本地接收输入的应该是另一线程
        String line = in.readLine();
        if (line == null) 
           flag = true;
        else {
           System.out.println("接收到客户机发来的消息: "+line);
           out.println("服务器回应消息: " + line);
           if (line.trim().equals("BYE"))
              flag = true;
      }
    }
    client.close();
    }
    catch(Exception e){}
    }
    }