关于自己协议的设计/实现的提示

fre*_*crs 5 java sockets networking protocols

在我工作的地方,我们需要一个能够:

  • 用户登录/注销
  • 发送/接收说明
  • 发送/接收文件
  • 发送/接收音频流(可以使用RTP)
  • 发送/接收小型XML文件使用
  • 所有这些的密码学.

它将在java中实现.所以我有一些问题,因为我还没有实现过网络协议.

  1. 是否可以使用现有协议来构建这个协议?
  2. 我可以使用什么工具来帮助我设计协议?用于"建模"
  3. 是否有可能完成这一切,独自完成?我有足够的时间来做这件事.

我在Java和C++方面有很好的背景,但还没有使用套接字/网络编程.

谢谢

vir*_*tor 2

我有一种感觉,您正在尝试重新发明 SIP(​​如果您的数据包处理大部分是无状态的,并且 XML 小到足以进入 <3k 数据包)或 XMPP。

如果您需要面向连接的登录/注销以及有状态命令/指令,那么 XMPP 可能更接近要求。此外,Jingle 对 XMPP 的扩展已经处理了 RTP 设置和拆卸。XML 消息很容易嵌入到自定义 XMPP 数据包(其本身就是 XML)中,并且存在已知的用于代理文件传输的 XMPP 解决方案。

我很确定它很好地满足了您的要求(至少是这里呈现的方式)。如果您不必设计全新的协议,那么可能会更容易。此外,重用现有的 XMPP 服务器将让您解决创建自己的消息代理的难题。OpenFire 服务器是用 Java 编写的。