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

fz_zhou 2006-09-13 12:36:23
想用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的数据,有什么好的方法可以不出现这种情况吗?比如可以设置超时之类的。
...全文
312 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
TinyJimmy 2006-09-14
  • 打赏
  • 举报
回复
注意设置超时, 如:
socket.setSoTimeout(30000); //读socket数据超时为30秒
我不是大明 2006-09-13
  • 打赏
  • 举报
回复
有高手帮忙看一下,或帮我顶一下,谢谢了,要不然散不了这100分
我不是大明 2006-09-13
  • 打赏
  • 举报
回复
谢谢上面的UP,这个问题我昨天搞了一天就是没找到解决办法,初学JAVA,回到了当时初玩MFC痛苦中.
这年头搞一个通用的开发工具得了,要累死人了.
我不是大明 2006-09-13
  • 打赏
  • 举报
回复
我自己发现了,是这个问题。看这个
http://community.csdn.net/Expert/TopicView3.asp?id=5019713
解答了,二个一起给分。200分。
kinsey0514 2006-09-13
  • 打赏
  • 举报
回复
UP

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧