1

我正在开发一个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编程经验。如此详细的示例或分步说明将不胜感激!

谢谢!

4

0 回答 0