【问题标题】:Writing a web protocol [closed]编写网络协议 [关闭]
【发布时间】:2013-07-28 06:53:17
【问题描述】:

我写了this (quickly drafted and not finished) specification,它基本上解释了我想如何用 c 编写一个基于 Web 的协议。我不知道如何开始写作。我认为我应该开始编写 tcp 套接字连接,但我不确定。

【问题讨论】:

  • 您不能将任何需要的标签写入 MP3 文件本身吗?
  • @ChrisBode 我需要包含服务器信息
  • 您选择的错误代码非常糟糕,与HTTP相同的数字但含义不同。你应该从你喜欢的任何地方开始写作,我真的不明白你期望我们提供什么样的输入。
  • @Mat 对不起。请记住,它是快速起草的,并没有完全完成。然而,它确实给出了协议的完整要点
  • 在开始编写代码之前完成规范。

标签: c networking web network-programming protocols


【解决方案1】:

我假设您是 C 的初学者。以下是您需要做的事情的清单:

具体学习C、C套接字: 1) 这是开始研究 C 套接字的绝佳场所。 http://beej.us/guide/bgnet/ 它还教授基本的客户端服务器关系并包含示例代码。 2) 学习MP3标准,这是相当不错的起点http://en.wikipedia.org/wiki/Mp3 3) 还要查看 id3 标签,这是 mp3 音频文件的常见元标签。 id3.org 应该是查找它的地方。

还要记住,用 C 编写代码并不是一件容易的事,你需要非常小心,不要搞砸了。

【讨论】:

  • 好的。我去做!谢谢!
  • 您可以将其标记为答案或至少投票=)
  • 如果这个答案对你有用,请考虑accepting it
【解决方案2】:

顺便说一句,FTP 使用 TCP。因此,如果您有兴趣构建另一个类似 FTP 的协议,那么您当然应该坚持使用 TCP。否则,您最终将在应用程序级别进行簿记和重新传输。

此外,为了扩大规模,您当然应该探索向您的协议服务器添加一个 select() 调用。这样,服务器不仅可以等待传入的文件请求,还可以继续为现有的请求提供服务。而且,如果您想将其扩展到非常大的数字,您还应该使用多线程(C 的 POSIX 线程)来设计它。

【讨论】: