我想在Android手机和桌面之间建立通信。场景是这样的:手机将实时图像流发送到桌面,桌面接收这些图像并处理它们(以获取手机的移动路径),然后将结果发送回手机。
我有一台路由器,因此可以在本地网络中完成通信。我该怎么做?我是新手。我最初的理解是我应该将桌面设置为服务器。我应该设置套接字吗?
...谢谢
答案 0 :(得分:0)
听起来像一个非常复杂的应用程序。我不确定你要用它来完成什么,(听起来你几乎可以在没有服务器部分的设备上运行它)但是这里我将如何用简化的伪代码构建这些应用程序:< / p>
SERVER
ptr = FFI::MemoryPointer.new Pcap::Pcap_if.size
res = Pcap.pcap_findalldevs ptr,tmp
devs = Pcap::Pcap_if.new ptr
客户端可以是多线程的,这意味着一个线程捕获图像并将它们发送到服务器,另一个线程监听结果。这是单线程方法:
客户端
Create a socket and listen for clients (this blocks. Use the ServerSocket class)
while(true) {
wait for image (this blocks)
process image
send results back to phone
}
请记住,这不会给你超快速和流畅的图像流,可能是1张/秒。我确信您可以使用摄像机和更快的帧速率构建此应用程序,但这一开始要容易得多。可能足以满足您的需求,也可能不会。视频必须是一个流,您可以将其作为服务器上的单个帧进行处理。
您可以在此处找到Socket通信的示例:http://cs.lmu.edu/~ray/notes/javanetexamples/和遍布StackOverFlow。桌面Java和Android上的API非常相似,如果不相同的话。