Java中的客户端服务器编程

时间:2010-11-30 15:10:26

标签: java client-server

我正在处理我的客户端服务器分配,并在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,我的意思是应该输入什么以便服务器将为空

先谢谢。

3 个答案:

答案 0 :(得分:1)

你必须优雅地关闭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

答案 1 :(得分:0)

关闭连接时。

答案 2 :(得分:0)

输入Ctrl + C:)