工具
个人知道的,和服务器建立TCP连接的工具有两个:
- telnet
- nc
使用方法
在看《Java核心卷2》的Socket使用方法时,看到书上例子是使用 telnet 进行测试的。上网看了一下 telnet 原理。telnet 其实就是一个建立TCP连接,并且能向服务器发送和接收“字符流”的工具。
前一段时间,看到了nc
命令,这个也可以建立 TCP 监听,并且还可以连接 TCP。所以,下面使用 telnet 的地方,也可以使用nc
命令。
Java程序如下:
package socket;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class SocketServerTest {
public static void main(String[] args) throws IOException {
try (ServerSocket server = new ServerSocket(9111)) {
try (Socket incoming = server.accept()) {
InputStream inStream = incoming.getInputStream();
OutputStream outStream = incoming.getOutputStream();
try (Scanner in = new Scanner(inStream)) {
PrintWriter out = new PrintWriter(outStream, true);
out.println("Hello! Say BYE to exit");
boolean done = false;
while (!done && in.hasNextLine()) {
String line = in.nextLine();
out.println("Echo:" + line);
if (line.trim().equals("BYE")) done = true;
}
}
}
}
}
}
telnet命令:
telnet localhost 9111
nc命令:
nc localhost 9111