草庐IT

android - Android 上的蓝牙 : my Socket. connect() 永远阻塞,Socket.close 不会解除阻塞

我一直在为android开发一个蓝牙应用程序,我刚刚发现了这个问题。当我在我的蓝牙服务类中执行mySocket.connect();时,它偶尔会无限期地阻塞。我阅读了BluetoothSocket.close()的文档,它说了以下内容:Immediatelyclosethissocket,andreleaseallassociatedresources.CausesblockedcallsonthissocketinotherthreadstoimmediatelythrowanIOException.但是,这似乎对我不起作用。这是我设置计时器然后尝试连接的代码。//codeforst

java - 安卓多人网络游戏

我正在编写一个Android多人游戏,它基本上由客户端连接和交换消息的服务器组成。当玩家连接到服务器时,玩家列表会返回给他/她。然后玩家可以选择一个用户来挑战——当然他必须从玩家列表中选择一个玩家,该列表只包含连接的用户。当玩家1挑战玩家2时,需要从玩家1向服务器发送一条消息,服务器又必须向玩家2发送消息,通知他挑战。然后玩家2可以接受/拒绝挑战。我可以使用以下技术来实现这一点:将自定义服务器/客户端与Java套接字编程结合使用。服务器基本上接受来自客户端的连接,为每个连接的客户端生成一个新线程。这样做的问题是:需要从客户端到服务器打开一个持久连接,这会浪费Android手机的电池生命

java - 如何使用套接字编程在两个 android 手机之间创建实时音频流..?

我正在尝试开发一个android应用程序,该应用程序将允许通过使用套接字编程在两个android手机之间进行音频流式传输。我应该使用什么进行音频数据传输?我正在使用api10 最佳答案 如果你想在局域网内进行链接,那么就有希望;但是,如果您想通过互联网连接,那就别想了,NATs和CGNs和类似的东西不会让你(好吧,除非你会为你的应用程序提供第三方中继服务器)。 关于java-如何使用套接字编程在两个android手机之间创建实时音频流..?,我们在StackOverflow上找到一个类似

Java 套接字不会在死套接字上抛出异常?

我们的移动设备和服务器之间有一个简单的客户端服务器架构,都是用Java编写的。一个极其简单的ServerSocket和Socket实现。然而,一个问题是,当客户端突然终止(没有正确关闭套接字)时,服务器不知道它已断开连接。此外,服务器可以继续写入此套接字而不会出现任何异常。为什么?根据文档,如果您尝试写入另一端无法访问的套接字,Java套接字应该抛出异常! 最佳答案 连接最终会因重传超时(RTO)而超时。然而,RTO是使用基于网络延迟(RTT)的复杂算法计算的,请参阅此RFC,http://www.ietf.org/rfc/rfc2

没有WIFi连接的Android套接字编程

我编写了一个应用程序来远程启动我在家的服务器。当启用WiFi时,该应用程序可以在模拟器和我的智能手机(HTCdesire,Android2.2)上正常运行。但是,当禁用WiFi时它不起作用。在重新启动之前,我首先检查它是否已经在运行。为此,我使用套接字并首先连接到一个dyndns地址。之后,我尝试连接到我的ip-box,在那里我可以通过套接字发送命令来打开我的计算机。当与该套接字的连接失败时,我知道服务器没有运行。相关代码为:socket=newSocket();socket.connect(newInetSocketAddress(serverName,port),10000);st

c# - 从 TCP 服务器向客户端发送多条消息(C sharp 到 Android)

我正在开发一个应用程序,其中csharp服务器与android客户端通信。服务器需要向AndroidtcpClient发送多条消息。至于发送消息,我必须关闭服务器上的tcpClient对象。否则不发送。一旦tcpClient关闭,我如何再次与我的客户通信,我如何跟踪和发送多条消息,一旦我关闭tcpClient,或者有任何其他发送方式而不关闭它。如果问题还不清楚,请在下方评论它发送一条消息很容易,但我需要不时发送更多消息这是服务器的代码fragment//inathreadvoidreceivingMessages(objectparam){try{varparamArray=(obje

java - Android Socket + ObjectOutputStream 无法正常工作

我正在开发一个客户端/服务器程序,其中客户端是一个android设备。服务器有一个监听器类,它从输入流中读取一个对象。我为另一台计算机创建了一个客户端软件,它通过本地网络发送一个小对象。ComputertoComputer运行良好,我读取了对象并打印了内容。但是,移植到android的SAME代码(我重写它以防万一)不起作用。我构建了一个可序列化的对象(任何对象),并通过ObjectOutputStream发送它。我在计算机上运行的服务器确实连接到设备,但它给了我一个ClassNotFound异常,即使我正在打印对象(它有一个toString)。正如我所说,在另一台计算机上运行的相同代

android流音频到服务器

我想了解套接字是如何工作的,特别是我需要一些服务器端的代码示例来接收设备从mediarecorder发送的流。非常感谢您的帮助。我真正的最终目的是在设备上讲话并在PC上收听,只是一个方向。目前我可以使用以下代码发送流:Stringhostname="192.168.1.10";intport=8000;Socketsocket=null;try{socket=newSocket(InetAddress.getByName(hostname),port);}catch(UnknownHostExceptione){e.printStackTrace();}catch(IOExceptio

android - 在 2 部 Android 手机之间打开套接字

是否可以在2部Android手机之间打开一个套接字?如何做到这一点,以便设备可以相互通信? 最佳答案 UsingSocketProgrammingwithAndroid是关于该主题的非常好的读物,它解释了如何使用Android进行套接字编程,还列出了一些有用的示例。此外,这discussion列出了一些非常有用的Android平台套接字编程指南 关于android-在2部Android手机之间打开套接字,我们在StackOverflow上找到一个类似的问题:

java - Android VpnService 保护存储在 native 代码中的套接字?

我正在编写一个VPN应用程序,用于VPN连接的套接字是在我的nativeC代码中处理的,而不是在java中。如何在该套接字上使用VpnService.protect()?我注意到它有一个VpnService.protect(int)重载,我可以将socket从native代码返回的int返回给Java并以这种方式保护它吗?示例//NativeCodeintsocket;JNIEXPORTjintJNICALLJava_com_my_package_Class_initializeSocket(JNIEnv*env,jobjectjobj){socket=socket(AF_INET,S