java - java中的多线程客户端套接字
问题描述
需要对用java编写的简单客户端套接字进行哪些更改才能成为多线程套接字。(我从网上获取了一个简单的套接字示例)谢谢
解决方案
多线程..客户端套接字?这是没有意义的。单个套接字是数据流,您不能像这样并行化套接字流。
您当然可以创建一个应用程序,打开 5 个单独的连接(可能全部连接到同一台服务器,这很好),并处理这 5 个单独的连接,每个连接由一个“从客户端到服务器”字节流加上一个“从服务器到客户端”字节的单个流,使用 5 个单独的线程。
但是您不能编写具有单个连接的应用程序,然后尝试使用 5 个线程处理该连接。
也许您的意思是服务器套接字。对于服务器套接字,您创建一个ServerSocket
对象。单个线程调用其accept
上的方法(等待客户端连接,建立连接,然后Socket
将代表单个连接的对象以及形成此连接的 2 个流传递给您)。然后,您可以创建一个新线程(或从线程池中获取一个线程,这通常是一种更好的方法),将套接字交给它,并让它处理该套接字。这样,您可以拥有 50 个线程,每个线程处理一个套接字:您的服务器现在可以处理 50 个同时连接的客户端。
推荐阅读
- react-native - RN 0.60.5 支持 justifyContent: 'space-evenly' 吗?
- reactjs - reactjs中的要求抛出找不到模块
- spring - JUnit test not loading properties file, but runtime code works correctly
- apache - Tomcat配置中的Jsession
- python - 将现有的 sqlite 数据库连接到 QSqlDatabase 的实例
- c++ - 我需要帮助弄清楚如何嵌套这个循环
- python - 在 tkinter 中按下按钮时导入新的 python 文件
- docker - 在 Docker 构建期间安装自制软件包
- sqlite - SQLite:FTS5 影子表中的外键引用数据
- python-3.x - 如何在回归问题中使用具有 MultiOutputRegressor 的目标函数