java - Socket同时读写

标签 java multithreading sockets

<分区>

我正在尝试编写一个非常简单的套接字程序,我基本上想要的是客户端在 while(true) 循环中不断监听来自服务器的通信。现在我还希望客户端能够在监听过程中将一些数据发送回服务器。

我能想到的唯一解决方案是为读写创建一个线程,并在每次我必须进行写入时中断读取线程。

是否有更好的解决方案或者这是我能做到的唯一方法

最佳答案

您可以使用两个线程。一种用于阅读,一种用于写作。这样写线程就可以随时写(不需要停止读)。

另一种方法是在调用 read 之前在套接字上使用 setSoTimeout(timeoutMs)。如果读取时间超过 timeoutMs 毫秒,这将导致它抛出 SocketTimeoutException,然后您可以随意写入。

关于java - Socket同时读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12807808/

相关文章:

java - vector 列表中的内存泄漏 Java OutOfMemoryError

ruby - Websocket发送无法从电话网络发送

perl - 如何在 Perl 脚本的两个分支部分之间建立 IP 通信

java - 如何让背景音乐与游戏同时运行?

python - 为什么不是 numpy.mean 多线程?

java - 返回按钮 -> 模拟主页按钮

java - 多线程插入 Redshift 表导致锁定

c - C 中的 TCP 套接字编程

java - 如何在整数值前加零

java - 乔格。 OpenGL。如何更新VBO?