Программирование клиент-сервер в Java - PullRequest
0 голосов
/ 30 ноября 2010

Я просто работаю над своим назначением клиент-сервер и нашел онлайн программу server.java как:

import java.io.*;
import java.net.*;

public class MyServer{

    public static void main(String [] args){
        try{
        ServerSocket ssc = new ServerSocket(7500);

        Socket newSsc = ssc.accept();
        DataInputStream din = new DataInputStream(newSsc.getInputStream());
        DataOutputStream dout = new DataOutputStream(newSsc.getOutputStream());

        PrintWriter pw = new PrintWriter(dout);
        pw.println("Hello! Welcome to vinit's server.");
        boolean more_data = true;
        while(more_data){
            String line = din.readLine();
            if(line == null){
                more_data = false;
            }
            else{
                pw.println("From Server "+line + "\n");
                System.out.println("From Client "+line);
                if(line.trim().equals("QUIT"))
                    more_data = false;
            }
        }
            newSsc.close();
        }
        catch(IOException e){
            System.out.println("IO error");

        }   

    }
}

Затем после того, как я использовал этот сервер, набрав команду как
$ telnet 127.0.0.1 7500


Теперь я хочу спросить, как мой сервер будет иметь значение NULL от клиента, я имею в виду, что нужно ввести, чтобы сервер получал NULL

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 30 ноября 2010

Вы должны изящно закрыть TCP-соединение, просто CTRL + C или уничтожение программы telnet не сработает, это приведет к исключению в коде Java.

Это проблема с telnet, в зависимости от вашей раскладки клавиатуры и ОС.

$ telnet localhost 8080
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
^]
telnet> quit
Connection closed.

Обычно, находясь внутри telnet, вам нужно нажать клавишу выхода telnet, которая на моей клавиатуре имеет значение CTRL + å и тип quit, а также на клавиатуре США. вероятно, это то, что программа telnet говорит вам, просто CTRL + ]

Если вы используете программу netcat вместо telnet, вы можете просто нажать Ctrl + D или передать какой-то текст, и соединение будет нормально закрыто.

echo "Some text" | nc localhost 7500
0 голосов
/ 30 ноября 2010

Введите Ctrl + C:)

0 голосов
/ 30 ноября 2010

Когда вы закрываете соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...