站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题有关Sockets 和 xmlbean 的使用,在xmlbean.xxx.parse()时一直死等。

有关Sockets 和 xmlbean 的使用,在xmlbean.xxx.parse()时一直死等。

摘要: 有关Sockets 和 xmlbean 的使用,在xmlbean.xxx.parse()时一直死等。


想用JAVA SOCKTS写一个简单的CS结构程序。

一、客户端程序:
1、先建立连接:
server = new Socket(InetAddress.getLocalHost(), _server_port);

2、再新建XMLDocument
XmlTestDocument doc = XmlTestDocument .Factory.newInstance();
//再往 doc 里填数据
...

3、再将doc的数据发送到server
doc.save(server.getOutputStream());
doc.save(System.out); //同时将数据输出,在此处可以看到输出数据的XML文件格式和内容完合正确。

4、等侍SERVER的回应数据包
XmlTestDocument rspDoc = XmlTestDocument .Factory.parse(in);

二. Server 端程序
前面没什么好说的,下面是一个有客户端连接上来时会进入的一个处理函数
@param:
public void serve(InputStream i, OutputStream o)
{
//我直接使用 parse(i) 等侍数据输入,
XmlTestDocument doc = XmlTestDocument .Factory.parse(i);

-----------------------------------------------
问题就在这里:一直等在这里,不管客户端发多少数据,程序都一直执行在这条语句上,想问下大家我下面的哪个地方写错了?
----------------------------------------------
}

还有另外想问一个问题,如果我这种设计方式,万一发送请求的时候不完整,这个连接就死等了,客户端等SERVER发数据,SERVER又在等CLIENT的数据,有什么好的方法可以不出现这种情况吗?比如可以设置超时之类的。


UP


谢谢上面的UP,这个问题我昨天搞了一天就是没找到解决办法,初学JAVA,回到了当时初玩MFC痛苦中.
这年头搞一个通用的开发工具得了,要累死人了.


有高手帮忙看一下,或帮我顶一下,谢谢了,要不然散不了这100分


我自己发现了,是这个问题。看这个
http://community.csdn.net/Expert/TopicView3.asp?id=5019713
解答了,二个一起给分。200分。


注意设置超时, 如:
socket.setSoTimeout(30000); //读socket数据超时为30秒


↑返回目录
前一篇: java 中 pack() 这个方法是什么意思的问题
后一篇: 请教:java.sql.SQLException: 流已被关闭 问题