Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建多线程Java服务器和客户端,但消息必须采用XML格式_Java_Xml_Client - Fatal编程技术网

创建多线程Java服务器和客户端,但消息必须采用XML格式

创建多线程Java服务器和客户端,但消息必须采用XML格式,java,xml,client,Java,Xml,Client,我必须使用服务器和客户端编写一个多线程聊天程序,但发送的每条消息都必须是XML 仅仅用java编写所有代码,然后尝试并以某种方式修改它以使消息以XMl格式发送,是更简单/更容易,还是仅仅尝试用XMl编写并希望它能工作更简单。我承认我对XML知之甚少。:) 此外,如有任何相关在线帮助/教程的链接,将不胜感激。 谢谢。< P>在java中使用XML时,请考虑使用或类似的东西。它允许您使用内存中的普通对象图,然后在一次操作中将其序列化为XML(另一种方式) 通过domapi操纵XML是一种缓慢的失去理

我必须使用服务器和客户端编写一个多线程聊天程序,但发送的每条消息都必须是XML

仅仅用java编写所有代码,然后尝试并以某种方式修改它以使消息以XMl格式发送,是更简单/更容易,还是仅仅尝试用XMl编写并希望它能工作更简单。我承认我对XML知之甚少。:)

此外,如有任何相关在线帮助/教程的链接,将不胜感激。
谢谢。

< P>在java中使用XML时,请考虑使用或类似的东西。它允许您使用内存中的普通对象图,然后在一次操作中将其序列化为XML(另一种方式)

通过domapi操纵XML是一种缓慢的失去理智的方式,不要为任何数量的XML这样做


我看不出多线程程序或服务器与它有什么关系…

有一种叫做XML RPC的东西。下面的示例大致显示了您要查找的内容:


使用现有的XMPP客户端和服务器而不编写自己的客户端和服务器会更简单


如果这实际上是家庭作业,那么我建议按照您的建议编写客户机和服务器,使用所有java,但使用字符串作为消息。然后,当所有其他部分都在工作时,您可以轻松地将字符串的解析添加到XML中或从XML中添加。

我建议您也看看Betwixt和Digester。对于Digester,可以在Digister wiki中找到一些教程。Betwixt在其网站上提供了一些非常好的教程

除了这两种工具之外,还可以在“签出”的“参考”部分中找到一系列替代工具。您可以使用它将普通Java对象打包成XML,然后再重新打包成一个对象,而不必做任何像定义接口或指定模式之类的事情。也就是说,对于已经定义的对象,它是现成的。在大多数情况下,它在默认模式下是无缝的

XStream生成Java对象的直接XML序列化表示(即XML元素直接表示Java对象的每个字段)。您可以根据需要进一步定制。如果您想根据模式(XSD)定义持久化对象,那么这是不合适的。然而,如果您正在传输持久性是短期的对象,并且您不担心遵从某种模式,那么它肯定是有用的

e、 g

从XML到
Person
对象的转换也同样微不足道


(注意)

您试图将任务分解成更小的部分,这是正确的

            Person person = new Person("Brian Agnew");
            XStream xStream = new XStream();
            System.out.println(xStream.toXML(person));