处理Java中断

时间:2011-11-26 18:51:11

标签: java concurrency

我正在创建一个类似于实时聊天的应用程序。用户将不断写入文本区域,并将消息发送给其他用户。在通信课上我设置了一个接收器。当某人的消息到达客户端时,将调用receive方法并获取消息。我无法理解的是代码将如何执行。如果在用户输入/发送消息时调用接收消息会发生什么?为了使其正常工作,我需要做什么? 希望这个问题足够清楚。

ps:我还处于设计阶段,这就是为什么我没有测试它看看会发生什么。 另外,我只使用第二个线程来接收调用receive方法的消息。

2 个答案:

答案 0 :(得分:0)

您应该执行传统Java EE应用服务器所做的事情,即为处理每个传入消息分配一个单独的线程,或者尝试沿着Netty行的Java NIO解决方案。

答案 1 :(得分:0)

应该没有问题。

  

当某人的消息到达客户端时,接收方法   将被调用并将获得消息。我无法理解的是   如何执行代码?

你应该有一个Receiver类来封装一个套接字(从中接收数据)并保留一组监听器(参见Observer pattern)。 GUI可以是监听器之一。当通过套接字接收消息时,您需要通过转发收到的数据来通知所有侦听器。通过这种方式,您可以通过一种简洁明了的方式向GUI通知新邮件的到达情况。

  

当用户输入/发送消息时,会发生什么?   接收消息被调用?

这取决于您使用的IP协议类型,但一般情况下您不必担心这一点,但我建议您使用lock机制来保护您的套接字。

为了使其正常工作,我需要做什么? 这是一个很好的example,可以给你一些灵感:)

编辑:关于执行流程的问题,发送和接收是可以同时发生的两种不同且不相关的操作。这可以通过在两个不同的线程中实现发送和接收操作来实现。这是关于套接字通信和多线程的article