繁体   English   中英

Java中的TCP套接字编程和多线程

[英]TCP socket programing and multithreading in java

我想使用Java中的TCP套接字在三台计算机之间发送和接收数据

  • 第一台计算机从键盘获取数据并将其发送到第二台计算机。
  • 第二台计算机从第一台计算机获取数据并将其发送到第三台计算机。

我的问题是:我可以在不使用多线程的情况下在第二台计算机(从第一台计算机接收数据并将其同时发送到第三台计算机)中实现TCP套接字程序吗?

是的你可以。 (但可能很愚蠢)

只需绑定端口并在服务器2上侦听它即可。服务器1连接到服务器2并发送数据。 服务器2在同一线程上读取数据,连接到服务器3并向他发送数据。

如果没有多线程,则可以从服务器1读取输入,也可以将数据发送到服务器3。此外,您只能一一处理来自服务器1的数据。 该程序将运行缓慢(没有多线程处理速度更快)。

您应该将机器2作为服务器,它将在某个固定的ip:port上进行侦听。 将计算机1和3作为客户端,这将在固定的ip:port上连接到计算机2。

关于多线程,可以通过使用轮询/选择来减少服务器线程。 请参考链接Java是否有epoll等效项? 可以更好地说明轮询/选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM