当前位置: 首页 > 知识库问答 >
问题:

Android处理使用套接字连接到服务器的多个客户端

东门越
2023-03-14

我有一个Android应用程序,需要允许多个套接字通信。以下是相关的基本工作:

我的应用程序(说服务器)是一个将作为服务器套接字运行的服务。其他应用程序可以在预定义的端口上连接到它。可以有多个连接,例如客户端1、客户端2。

所以,当客户端1发送hello时,服务器将对此进行处理,并应将回复发送回客户端1。

目前我能够连接客户端1和客户端2的服务器。我已经为其创建了输入、输出缓冲区。但我不确定服务器将如何检测它收到了“你好”。

我指的是这个例子,但仍然不清楚如何使用该解决方案:

如何处理使用套接字连接到服务器的多个客户端?

共有2个答案

厉高逸
2023-03-14

首先,我尝试在建立新连接时检查线程ID,但它与服务器ID相同。每当从特定线程收到请求时,它都有ID。您可以通过

Thread.currentThread(). getId();

这对于每个客户端都是唯一的。所以我保存它并用它来检测我应该回复哪个线程。

谢谢大家的支持。

钱睿范
2023-03-14

服务器套接字。accept()调用在服务器端创建连接,返回套接字。每次对accept的调用都将创建一个新套接字,用于与该特定客户机通信。因此,无论套接字向您发送什么输入,都是需要响应的套接字。

 类似资料:
  • Java: 在C#中-它停止在“receiver=listener.accept();”在java(android)中-它停止于“sender_socket=new Socket(serverAddr,SERVERPORT);”这应该是java套接字函数的问题--需要另一个函数连接到C#-server。

  • 如何使用套接字将Swift客户端连接到Java服务器?如何在客户端和服务器之间发送不同的数据类型?

  • 当我尝试使用套接字将物理设备连接到服务器时,我遇到了一个问题。在服务器端,它似乎不接受任何连接,而在客户端,套接字超时。你知道为什么会这样吗? 我在下面提供我的代码 服务器代码: 客户端: 11-16 23:32:11.016:W/系统。错误(24213):java.net。ConnectException:无法连接到/192.168.1.116(端口9090):连接失败:ETIMEDOUT(连接

  • 我刚刚开始使用Sockets,对于我当前的项目,我需要能够从客户端控制我的程序,但是如果我的项目合作伙伴想同时使用他的客户端,服务器不会向他发送“您已连接”消息,如连接类所示。所以我假设服务器不同时接受多个客户端。我尝试过使用类Connection的Thread,但这也不会向第二个客户端发送消息“您已连接”。我在这里做错了什么? 这是我用来同时连接多个用户的线程: 编辑:附加信息 在第一个客户端连

  • 真的需要你帮忙。 我的项目是通过电缆连接两台PC机,并使用tcp套接字将客户端文本框形式的字符串发送到服务器。问题是ATI只能发送一个字符串,然后连接就会关闭。 注意:某个端口上的连接将在表单加载中建立并成功。

  • 首先我要感谢你花时间... 我在macbook中用C++创建了一个服务器套接字,在运行windows XP的不同机器中用Java创建了一个客户机/套接字。我已将端口指定为5000,但无法指定正确的主机,因此无法进行连接。当我在windows xp中使用WinSock2创建一个C++服务器/套接字时,当我使用本地主机时,连接是完美的...有什么想法吗??? 提前Thnx int main(int a