我想在Android手机和桌面之间建立通信。场景就是这样:手机将实时图像流发送到桌面,桌面接收这些图像杂项并处理它们(获取手机的移动路径),然后将结果发送回手机。
我有一个路由器,因此可以在本地网络中进行通信。我应该怎么做?我是这个新人。我最初的理解是,我应该将桌面设置为服务器。我应该设置插座吗?
谢谢....
听起来像是一个非常复杂的应用程序。我不确定您要使用它来实现什么,(听起来您几乎可以在没有服务器部件的情况下完全在设备上运行),但这是我将如何在简化的伪代码中构建这些应用程序:
服务器
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
}
客户端可以是多线程的,这意味着一个线程捕获图像并将其发送到服务器,另一个线程会听取结果。这是单线方法:
客户端
Connect to server (Use Socket class)
while(true) {
capture image
send image to server
wait for results (this blocks)
process results
}
请记住,这不会为您提供超快速,流畅的图像流,也许是1张图片/秒。我敢肯定,您可以使用摄像机和更快的帧速率构建此应用程序,但这更容易开始。可能足以满足您的需求,或者可能不足。视频必须是流,您将作为服务器上的单个帧进行处理。
您可以找到套接字通信的示例,例如:http://cs.lmu.edu/~ray/~ray/notes/javanetexamples/以及整个stackoverflow。桌面Java和Android上的API非常相似,即使不是相同。