我正在创建一个类似于实时聊天的应用程序。用户将不断写入文本区域,并将消息发送给其他用户。在通信课上我设置了一个接收器。当某人的消息到达客户端时,将调用receive方法并获取消息。我无法理解的是代码将如何执行。如果在用户输入/发送消息时调用接收消息会发生什么?为了使其正常工作,我需要做什么? 希望这个问题足够清楚。
ps:我还处于设计阶段,这就是为什么我没有测试它看看会发生什么。 另外,我只使用第二个线程来接收调用receive方法的消息。
答案 0 :(得分:0)
您应该执行传统Java EE应用服务器所做的事情,即为处理每个传入消息分配一个单独的线程,或者尝试沿着Netty行的Java NIO解决方案。
答案 1 :(得分:0)
应该没有问题。
当某人的消息到达客户端时,接收方法 将被调用并将获得消息。我无法理解的是 如何执行代码?
你应该有一个Receiver类来封装一个套接字(从中接收数据)并保留一组监听器(参见Observer pattern)。 GUI可以是监听器之一。当通过套接字接收消息时,您需要通过转发收到的数据来通知所有侦听器。通过这种方式,您可以通过一种简洁明了的方式向GUI通知新邮件的到达情况。
当用户输入/发送消息时,会发生什么? 接收消息被调用?
这取决于您使用的IP协议类型,但一般情况下您不必担心这一点,但我建议您使用lock机制来保护您的套接字。
为了使其正常工作,我需要做什么? 这是一个很好的example,可以给你一些灵感:)
编辑:关于执行流程的问题,发送和接收是可以同时发生的两种不同且不相关的操作。这可以通过在两个不同的线程中实现发送和接收操作来实现。这是关于套接字通信和多线程的article。