我正在开发一个Android应用程序,包括客户端和服务器,客户端应用程序将相机捕获的数据发送到服务器进行处理,服务器将结果发送回客户端进行显示。它的当前版本使用 TCP 传输数据,因此代码包括以下内容:
客户端:
send(){
Socket socket = new Socket();
DataOutputStream outputStream = new DataoutputStream(socket.getOutPutStream());
outputStream.writeUTF(...)
...
outputStream.write(data);
outputSteram.flush();
...
}
receive(){
DataInputStream dataInputStream = new DataInputStream(...);
...
dataInputStream.readFully(data, 0, length);
...
}
服务器端:
...
serverDataInputStream.readFully(data,0,length);
//process data
...
serverDataOutputStream.write(reply)
...
我尝试将其更改为使用 UDP,但是从客户端发送到服务器的数据远大于 UDP 数据包的最大大小,因此必须将客户端中的数据分段并在服务器上手动重新组合。结果发现太麻烦了。
我知道 RTP 负责处理数据碎片,所以现在我想将其更改为 RTP。google了一阵子,发现如下信息:http: //sourceforge.net/projects/jlibrtp/ http://code.google.com/p/sipdroid/source/browse/trunk/src/org/sipdroid/ sipua/ui/VideoCamera.java
这两个帖子与我正在做的非常相似: Android Camera RTSP/RTP Stream? 从 Android 相机创建 RTP 数据包以发送
但这些帖子只包含有限的示例代码。任何人都可以在这里发布更多详细信息和示例代码吗?我没有太多Java和Android编程经验。如此详细的示例或分步说明将不胜感激!
谢谢!