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