首页 > 解决方案 > java中的多线程客户端套接字

问题描述

需要对用java编写的简单客户端套接字进行哪些更改才能成为多线程套接字。(我从网上获取了一个简单的套接字示例)谢谢

标签: javamultithreadingsockets

解决方案


多线程..客户端套接字?这是没有意义的。单个套接字是数据流,您不能像这样并行化套接字流。

您当然可以创建一个应用程序,打开 5 个单独的连接(可能全部连接到同一台服务器,这很好),并处理这 5 个单独的连接,每个连接由一个“从客户端到服务器”字节流加上一个“从服务器到客户端”字节的单个流,使用 5 个单独的线程。

但是您不能编写具有单个连接的应用程序,然后尝试使用 5 个线程处理该连接。

也许您的意思是服务器套接字。对于服务器套接字,您创建一个ServerSocket对象。单个线程调用其accept上的方法(等待客户端连接,建立连接,然后Socket将代表单个连接的对象以及形成此连接的 2 个流传递给您)。然后,您可以创建一个新线程(或从线程池中获取一个线程,这通常是一种更好的方法),将套接字交给它,并让它处理该套接字。这样,您可以拥有 50 个线程,每个线程处理一个套接字:您的服务器现在可以处理 50 个同时连接的客户端。


推荐阅读