Flex xml套接字到Java xml套接字

时间:2012-03-12 19:28:46

标签: java xml flex sockets

我需要在Java中创建一个与使用Flex实现的客户端功能相同的客户端。 在Flex中,客户端使用XMLSocket.send发送以下数据:

<ConnectionInfo hubId="a0sjdas09dj-222"/>

.Net服务器接收并响应。

我正在尝试通过执行以下操作来对Java执行相同的操作:

    String connectionInfo = "<ConnectionInfo hubId=\""+hubId+"\"/>";
    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(this.socket.getOutputStream()));
    writer.write(connectionInfo+"\n");
    writer.flush();

问题在于java实现我从来没有得到服务器的响应。

我一直在通过查看tcp端口进行调试,并比较flex正在发送的XMLSocket和我的Java Socket发送的内容,我无法找出为什么.Net Server不会将响应发送给Java套接字。

我已经尝试过使用了 DataOutputStrea,PrintWriter等......因为在最后添加新行等等。

flex文档包含:

  

XML消息通过全双工TCP / IP流套接字连接发送。

     

每条XML消息都是一个完整的XML文档,以零(0)结尾   字节。

     

可以通过a发送和接收无限数量的XML消息   单个XMLSocket连接。

我不知道我发送的数据和Flex客户端(有效)之间有什么区别。我假设服务器不接受我的请求,因此不发送回复。

但为什么?

解决方案:正如shaunhusain所说的那样(关键是“\ 0”):

DataOutputStream dos = new DataOutputStream(this.socket.getOutputStream());
dos.write(new String(connectionInfo+"\0").getBytes("UTF8"));
dos.flush();

0 个答案:

没有答案