我想使用Java中的TCP套接字在三台计算机之间发送和接收数据
我的问题是:我能否在第二台计算机(它接收来自第一台计算机的数据并同时发送给第三台计算机)中实现TCP套接字程序,而不使用多线程?
发布于 2015-12-14 16:36:02
是的你可以。(但这可能很愚蠢)
只需绑定一个端口并在服务器2上监听它。服务器1连接到服务器2并发送数据。服务器2读取数据,连接到服务器3,并在同一线程上发送数据。
没有多线程,您既可以读取服务器1的输入,也可以将数据发送到服务器3,而且只能一个接一个地处理来自服务器1的数据。该程序将缓慢工作(不能更快,因为它可以与多线程)。
发布于 2015-12-14 16:39:36
您应该使机器2作为服务器,它将侦听一些固定的ip:端口。使机器1和3作为客户端,在固定ip:端口上连接到机器2。
关于多线程,您可以通过使用轮询/select来减少服务器线程。请参考链接Is there epoll equivalent in Java?,更好地解释投票/选择。
https://stackoverflow.com/questions/34271977
复制相似问题