有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何通过Socket在Java和Dart之间进行通信

我想运行Dart和Java代码的组合,它们可以相互通信。 因此,我选择使用socket,服务器socket用Java编写,客户端socket用Dart编写

这是我写的代码:

服务器

ServerSocket server = new ServerSocket(12345);
server.setSoTimeout(0);        
System.out.println("waiting for connection...");

while (true) {
    try {
        Socket client = socket.accept();
        DataInputStream input = new DataInputStream(client.getInputStream());
        DataOutputStream output = new DataOutputStream(client.getOutputStream());
        System.out.println("connected to " + client.getLocalSocketAddress() + ".");

        while (true) {
            output.write(input.readLine());
        }
    } catch (IOException e) {
        System.out.println("disconnected.\n\nwaiting for connection...");
    }
}

客户

Socket client = await Socket.connect('localhost', 12345);
client.write('hello there\n');
client.close();

不幸的是,服务器没有收到客户端发送的ping消息。 到目前为止,我认为问题在于Dart代码,因为当执行一个用Java编写的客户机时,它工作得很好

你知道怎么解决这个问题吗?如果是这样,请告诉我。提前谢谢


请注意:

由于一次不会有超过一个客户,我选择了这种方法。我知道,通常这不是一种好的风格


共 (2) 个答案

  1. # 1 楼答案

    这对我有用

    Socket client = socket.accept();
    byte[] b = new byte[100];
    client.getInputStream().read(b);
    System.out.println(new String(b));