gpt4 book ai didi

java - 从基本服务器向特定客户端发送消息

转载 作者:太空狗 更新时间:2023-10-29 13:35:50 25 4
gpt4 key购买 nike

我有两个连接到接入点的 wifi 模块 M1 和 M2。我有一部连接到同一个接入点的安卓手机。我的安卓手机上有一个套接字服务器,这两个模块作为客户端连接到服务器。现在我的问题是,是否可以从我的手机向模块 M1 发送一条字符串消息,而无需向 M2 发送任何内容。我想在客户端之间进行选择以将消息发送到。在 Java 中甚至可能吗?

好的,开始吧。

//setting up server
ServerSocket serverSocket = new ServerSocket(8000, 0, IPaddress);

//creating a client socket to accept it
Socket clientSocket = serverSocket.accept();

现在,我在一个单独的线程中接受客户端,这样主线程就不会因为 accept() 函数阻塞而卡住。

我不知道每次新客户端连接时如何创建一个新线程。我也不知道如何限制可以连接的客户端数量。我最多需要 5 个客户,不能更多。

最佳答案

是的,这是可能的。您需要与每个客户端保持单独的连接。 ServerSocket 类有一个 accept() 函数,它返回一个 Socket 对象。该对象代表两点之间的连接,即您的服务器和一个客户端。您可以在循环中多次调用 ServerSocket.accept() 以接受所有传入连接。返回的每个 Socket 对象将用于不同的客户端。

为了让服务器向特定客户端发送消息,它需要知道哪个套接字属于哪个客户端,因此客户端必须向服务器发送一些消息来标识自己,而服务器需要阅读并解释该信息。然后它可以针对该特定客户端做出适当的响应。

如果您仍然遇到问题,请发布您的代码。

更新 因为您向问题添加了代码:请参阅 Android Documentation关于创建线程。除了这篇关于 stackoverflow 的帖子之外,还有很多阅读内容。

至于接受连接和启动线程,循环执行即可:

for(int i = 0; i<5; i++){
clientSocket = serverSocket.accept();
// start a new thread, passing it the clientSocket as an argument
}

其他可能有用的链接: https://developer.android.com/resources/articles/painless-threading.html https://developer.android.com/guide/topics/fundamentals/processes-and-threads.html

关于java - 从基本服务器向特定客户端发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10777678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com