2011-12-21 39 views
3

有可能有一个服务器和一个套接字连接的客户端同时发送双向数据?我的意思是服务器和客户端同时读写(每个进程中有2个线程)java套接字全双工

编辑:我需要“真正”的双向通信而不是请求/响应类型的通信。客户端和服务器都必须能够同时写入。

编辑2:上帝圣母!有用。愚蠢的我,因为在读者线程中写入,我在客户端/服务器之间发生了死锁! :)谢谢

+0

不完全确定这是否是你问的,但它至少是相关的,可能是你感兴趣的:[另一个Java套接字全双工问题](http://stackoverflow.com/questions/6265731/do -java-sockets-support-full-duplex) – 2011-12-21 20:37:05

+0

你有没有例子如何做到这一点。我需要这样的事情。 – Diyko 2014-07-01 15:04:26

回答

1

TCP连接是一个全双工字节流,所以是的,你可以同时读取和写入同一个套接字,尽管你当然不需要求助于线程来进行双向通信。

+1

我需要“真正的”双向通信,而不是通信的请求/响应类型。客户端和服务器都必须能够同时写入。 – Stig 2011-12-21 20:58:48

+1

没有线程,你不能实现全双工功能。您可以发送,也可以等待回应。你不能把两件事情都做到一起。所以没有线程它将是半双工。人们可以在任何时间发送或接收(或等待接收)。 – 2011-12-21 21:05:25

+0

反正我会运行它。当没有东西可以读取时也会出现交错问题(尽管这可以用超时来处理) – Stig 2011-12-21 21:18:28

1

是的,它似乎使用线程每个发送和接收双方。所以一个套接字连接可以做到这一点