让我们说我运行的这个示例Java代码侦听端口1234:
ServerSocket socket = new ServerSocket(1234);
并接收收到的第一个字节:
Socket s = socket.accept();
byte[] buffer = new byte[1];
BufferedInputStream bis = new BufferedInputStream(s.getInputStream());
int read = bis.read(buffer, 0, 1);
switch (buffer[0]) {
case 0x01:
System.out.println("One.");
break;
case 0x02:
System.out.println("Two.");
break;
default:
System.out.println("Other.");
break;
}
有没有办法从外部源测试此代码?例如,我可以使用Telnet或NetCat之类的东西来实现这一目标吗?
答案 0 :(得分:2)
您可以使用 NetCat 执行此操作:
echo -e '\x02' | nc 127.0.0.1 1234
这将导致"两个。"输出到Java应用程序的控制台。
您可以使用 Telnet 这样做(Telnet只会将您键入的每个键作为ASCII字节发送。如果要发送的字节少于可输入字符,可以按Ctrl键从ASCII值中减去64):
telnet 127.0.0.1 1234
然后按Ctrl+B
发送0x02(B为ASCII值66,因此按住Ctrl会从值中减去64)。这将导致"二。"输出到Java应用程序的控制台。