我客户端向服务器发一消息,服务器如何可以自动的回复。

解决方案 »

  1.   

    怎么发啊,是用DataOutputStream吗
      

  2.   

    我還是用語言給你說吧
    就是服務有一個等輸入
    當你輸入后,也就是服務接到你的消息
    根擾你的消息確發,利且已經和你建的SOCKET輪出流,
    使用PrintStream或者是BufferedWriter等輸出類都可以將消息發給你
    具體是怎么樣的,如果你需要,我有一個自己寫的字符界面的聊天室
    你可以看看
      

  3.   

    //Client.java:
    import java.io.*;
    import java.net.*;
    public class Client {
    private static DataInputStream DIS;
    private static DataOutputStream DOS;
    private static Socket cSocket;
    public static void main(String arg[]){
    try{
    //for(int i=0;i<arg.length;i++)
    //System.out.println("\n  "+arg[i]);
    cSocket=new Socket(arg[0],1111);
    DOS=new DataOutputStream(cSocket.getOutputStream());
    DIS=new DataInputStream(cSocket.getInputStream());
    String word="";
    String msg="";
    msg=DIS.readUTF();
    System.out.println("Server Information:"+msg);
    //BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    //System.out.println("My Word:");
    //word=br.readLine();
    //DOS.writeUTF(word);
    //while(!word.equals("bye")){
    //msg=DIS.readUTF();
    //System.out.println(msg);
    //System.out.println("My Word:");
    //word=br.readLine();
    //DOS.writeUTF(word);
    //瞳蚚盄最楷冞秏洘
    new wordToServer(cSocket).start();
    //瞳蚚盄最諉彶秏洘
    new receiveWord(cSocket).start();
    //}

    }
    catch(Exception e){
    e.printStackTrace();
    //System.out.println("Welcome again!");
    }
    }
    }
    class wordToServer extends Thread//蚚衾砃督昢け楷冞秏洘
    {   
    private static DataOutputStream DOS;
    private static Socket cSocket;
    public wordToServer(Socket C)
    {
    try{
    cSocket=C;
    }
    catch(Exception e)
    {
    e.printStackTrace();
    //System.out.println("Welcome again!");
    }
    }
    public void run()
    {
    String msg="";
     
                    while(!msg.equals("bye"))
    {  
    try{  
                                   DOS=new DataOutputStream(cSocket.getOutputStream());
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    //System.out.print("\nMy Word:");
    msg=br.readLine();//植瑩攫怀&#11980;陓洘
    DOS.writeUTF(msg);//蔚瑩攫怀&#11980;陓洘楷厘督昢傷
    }
    catch(Exception e)
    {
    e.printStackTrace();
    try{
    DOS.writeUTF("bye");//楷冞婬獗諷秶趼
    }
    catch(Exception e1)
    {
    e1.printStackTrace();
    }
    //System.out.println("Welcome again!");

    }
            }
    try{
    DOS.writeUTF(msg);
    DOS.close();
    cSocket.close();
    }
    catch(Exception e)
    {
    e.printStackTrace();
    //System.out.println("Welcome again!");
    }

    }
    }
    class receiveWord extends Thread//蚚衾諉彶督昢け楷冞徹懂腔秏洘
    {
    private static DataInputStream DIS;
    Socket cSocket;
    public receiveWord(Socket C)
    {
    try{
    cSocket=C;
    DIS=new DataInputStream(cSocket.getInputStream());
    }
    catch(Exception e)
    {
    e.printStackTrace();
    //System.out.println("Welcome again!");
    }
    }
    public void run()
    {
    while(true)//悜遠腔淈泭蚕督昢傷楷冞徹懂腔秏洘
    {
    try{

    String msg="";
    msg=DIS.readUTF();
    if(msg.equals(""))
    {
    continue;
    }
    else
    {
    System.out.println(msg);
    }
    }
    catch(Exception e)
    {
    System.out.print(e);
    //System.out.println("Welcome again!");
    break;
    }
         }

    }

    }
      

  4.   

    //Server.java
    import java.net.*;
    public class Server {
    /**
     * @param args
     */
    ServerSocket sSocket;
    Socket cSocket;
    public static Object[] totalUser=new Object[200];//蚚衾湔溫祥肮蚚誧腎翻腔SOCKET
    public static int allUser=-1; //蚚衾&#63489;隅絞ゴ衄嗣屾蚚誧
    public static void main(String[] args) {
    // TODO 赻雄汜傖源楊湔跦
    Server server=new Server();
    try{
    int port;
    port=1111;

                            server.sSocket=new ServerSocket(port);
    System.out.println("Listening...");
    while(true){
    server.cSocket=server.sSocket.accept();
    if(server.cSocket!=null)
    {
    //絞淈泭善綴憩參淈泭善腔SOCKET溫善OBJECT勤砓杅郪笢
    totalUser[++allUser]=server.cSocket;
    System.out.println("絞ゴ婓盄蚚誧:");
    for(int i=0;i<=allUser;i++)
    {
    System.out.println(totalUser[i].toString());
    }
    Thread T=new Thread(new ListenClient(server,server.cSocket));
    T.start();
    }
    }


    }
    catch(Exception e){
    e.printStackTrace();
    } }}