Java transferTo(out)在每个字符之后而不是在按Enter

时间:2019-05-30 18:13:56

标签: java sockets

我刚刚搬家,我的应用程序的行为方式与过去不同,而且对我来说毫无意义。

已执行: (Microsoft Telnet)-> telnet本地主机8010

键盘输入1: 你好

控制台输出1: 你好

键盘输入2: 这个

控制台输出2: 这个

实际: telnet本地主机8010

键盘输入1: 一个

控制台输出1: 一个

键盘输入2: 4

控制台输出2: 44

以此类推...它会立即重复每个字符。

public class SingleThreadedBlockingServerBasic {

    public static void main(String[] args) throws IOException {


        ServerSocket serverSock = new ServerSocket(8010);


        while (true) {

            // Connect client and serverSock - Tell serverSock to accept client Socket
            Socket client = serverSock.accept();

            InputStream in = client.getInputStream();
            OutputStream out = client.getOutputStream();

            int data;

            // Read the int-read into the 8k buffer at offset 0 from the inputstream. inputstream receives data off
            // of the client Socket.
            in.transferTo(out);
        }
    }


}

1 个答案:

答案 0 :(得分:0)

Microsoft Telnet会话一次响应用户输入的一个字符,它不等待回车,然后以MacOS和某些Linux telnet的方式发送用户输入。

感谢user207421,james-k-polk为您提供信息。