自从我开始思考如何使用Java套接字发送和接收数据。我希望你能帮助我找到一个好办法。java套接字发送和接收
我已经构建了一个服务器/客户机结构,客户机连接到服务器并获取自己的线程来处理请求 - 响应方法。这些信息以XML格式包装。
服务器在开始时启动阻塞套接字读取。首先,我使用writeInt()来传输XML消息的长度。之后,服务器读取长度字节的数量并解析消息。传输之后,客户端进入接收状态并等待响应。
这很好,但是在客户端验证服务器之后等待将会出现并阻止的事情。
但是当服务器没有需要传输的信息时我应该怎么做。我可以尝试销毁读取阻塞并将消息发送给客户端。但是,如果客户想到他也有消息并开始发送,会发生什么。在那一刻,没有人会听。
因此,也许我可以使用某种缓冲区,但我有这种感觉,这不是我应该去的方式。
我一直在寻找一段时间,发现了一些有趣的信息,但我没有很好地理解它们。可悲的是,我的书只是关于这个简单的套接字模型。
也许我应该使用两个线程。一个发送一个接收。服务器有一个数据库,用于存储消息并等待传输。所以当服务器收到一条消息时,他会将该消息存储在数据库中,并且“接收到的消息”等答案也会存储在数据库中。发送者线程会查看是否有新消息并将“收到消息”发送给客户端。这种方法不会以毫秒为单位发送答案,但我可以想象它会工作得很好。
我希望我给你足够的关于我所尝试的信息。你会推荐我如何实施这种沟通?
感谢
看看http://code.google。com/p/quickserver /(下载压缩包含所有代码和许多抽样以便开始使用) – tgkprog