【问题标题】:To test a server socket connection, how can I send a byte or bytes directly to it?要测试服务器套接字连接,如何直接向它发送一个或多个字节?
【发布时间】:2017-11-22 06:00:12
【问题描述】:

假设我正在运行这个在端口 1234 上侦听的示例 Java 代码:

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 之类的工具来完成此操作吗?

【问题讨论】:

    标签: java sockets telnet netcat


    【解决方案1】:

    您可以像这样使用 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 应用程序的控制台。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-24
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多