java服务器和matlab客户端之间的通信

时间:2010-02-13 23:46:54

标签: java sockets matlab

我想使用socket建立服务器(Java)/客户端(Matlab)通信。他们可以互相发送消息。一个示例显示了如何在Java服务器和Java客户端http://java.sun.com/docs/books/tutorial/networking/sockets/clientServer.html中执行此操作。

当我尝试在Matlab中重写客户端部分时,我只能获得Java服务器发送的第一条消息,并在Matlab命令窗口中显示它。

当我在Matlab命令窗口中输入消息时,我无法将其传递给Java Server。

Jave代码:

kkSocket = new Socket("localhost", 3434);

Matlab等价物:

kkSocket = Socket('localhost', 3434);

客户端的Java代码:

    out = new PrintWriter(kkSocket.getOutputStream(), true);
    in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream())); 

Matlab相当于什么?提前致谢。

2 个答案:

答案 0 :(得分:1)

对于输入流:

input_stream   = input_socket.getInputStream;
d_input_stream = DataInputStream(input_stream);

对于输出流:

output_stream   = output_socket.getOutputStream;
d_output_stream = DataOutputStream(output_stream);

答案 1 :(得分:0)

如果您尝试在同一台计算机上使用MATLAB和Java应用程序,那么matlabcontrol可能会执行您要查找的所有内容。它自动建立与MATLAB会话的连接。它使用了Java的Remote Method Invocation,它使用了套接字。 matlabcontrol专门用于在localhost上启用通信;由于可能允许的安全问题,它创建的套接字将不接受远程连接。但是,如果您需要允许远程连接,您可能会发现matlabcontrol's source code的某些部分很有用。