【问题标题】:Open socket connection with Icecast server on iOS在 iOS 上打开与 Icecast 服务器的套接字连接
【发布时间】:2012-10-23 13:54:53
【问题描述】:

我正在尝试为 iOS 上的 Icecast 服务器创建源客户端。

我相信我理解这里的协议Icecast 2: protocol description, streaming to it using C#

但是,我在创建与服务器的套接字连接时遇到了问题。假设服务器在http://myicecastserver.com 的端口 8000 上运行。我设置了一个名为 stream 的挂载点,它在将 ezstream 用作输入时工作。我应该如何从 iOS 打开连接?

我使用过这样的 AsyncSocket 库:

[socket connectToHost:@"http://myicecastserver.com" onPort:8000 error:&err];

像这样:

[socket connectToHost:@"http://myicecastserver.com/stream" onPort:8000 error:&err];

无济于事。

我也尝试使用与 SocketRocket 的 websocket 连接也无济于事:

SRWebSocket *socket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:@"http://myicecastserver.com:8000/stream"]];
[socket setDelegate:self];
[socket open];

这给了我一个 404 错误

我已经尝试了一些变体,但无法打开此连接以挽救我的生命! 谢谢!

更新

我正在使用 SocketTest 作为测试源客户端,并且能够连接到端口 8000 上的http://myicecastserver.com

【问题讨论】:

  • 连接后。您如何将编码数据发送到 icecast 服务器。请分享您的示例代码和想法

标签: ios sockets streaming websocket icecast


【解决方案1】:

我的解决方法如下:

我正在使用这样的 AsyncSocket 库:

[socket connectToHost:@"myicecastserver.com" onPort:8000 error:&err];

诀窍是删除“http://”(是的,我就是这么傻)然后在连接时我可以发送正确的标头。

【讨论】:

  • +1,是的,你想要一个常规的 TCP 套接字连接,而不是 websockets 等等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-18
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 2014-12-02
  • 2016-12-09
  • 1970-01-01
相关资源
最近更新 更多