-3

我是 Java 新手,正在尝试使用 Datagram 套接字编写程序来在客户端和服务器之间发送和接收数据包。问题是当光标到达该receive()行时,它会卡在那里直到数据包到达。在这段时间里,我怎样才能向对方发送数据?换句话说,我怎样才能让它使用数据报套接字同时发送和接收?

4

2 回答 2

4

您需要线程(或 NIO/netty,但要高级得多)。

如果不能一次处理,基本上阻塞 IO(顾名思义)会在每个读/写操作上阻塞当前线程。因此,您需要第二个线程来处理写入。每个好的 Java 套接字教程都将包含一个多线程服务器的示例。

于 2012-11-12T18:40:26.720 回答
-1

您似乎指的是异步 I/O,虽然这确实是通过使用线程和套接字(如前所述)实现的,但最好使用 NIO:http ://en.wikipedia.org/wiki/New_I/O

它的扩展性要好得多,并且是基于事件的,这比多线程更容易掌握,假设您对 IO 和网络没有太多经验。你可以通过使用 Apache MINA 来避免它的一些复杂性:http: //mina.apache.org/

于 2012-11-12T18:52:47.293 回答