2012-11-02 5 views
1

Je suis en train de créer un client source pour un serveur Icecast sur iOS.Connexion de socket ouverte avec le serveur Icecast sur iOS

je crois que je comprends le protocole ici Icecast 2: protocol description, streaming to it using C#

Cependant, je ne parviens pas à créer la connexion socket au serveur. Supposons que le serveur fonctionne sur le port 8000 au http://myicecastserver.com. Je configure un point de montage appelé flux qui fonctionne quand ezstream est utilisé comme entrée. Comment dois-je ouvrir la connexion à partir d'iOS?

J'ai utilisé la bibliothèque AsyncSocket comme ceci:

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

comme ceci:

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

en vain.

J'ai aussi essayé d'utiliser une connexion websocket avec SocketRocket également sans résultat:

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

cela me donne une erreur 404

J'ai essayé quelques variations sur cela, mais ne peut pas ouvrir ce lien Sauvez ma vie! Merci!

MISE À JOUR

J'utilise SocketTest en tant que client de source de test et je suis en mesure de se connecter à http://myicecastserver.com sur le port 8000

+0

Après avoir établi la connexion. Comment vous envoyez les données encodées au serveur icecast .. S'il vous plaît partager votre code d'exemple et l'idée –

Répondre

1

Ma solution est la suivante:

J'utilise la bibliothèque AsyncSocket comme celui-ci :

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

l'astuce était de supprimer « http: // » (oui, je suis si stupide) puis connecter je peux envoyer les en-têtes à droite.

+2

+1, Oui, vous voulez une connexion socket TCP régulière, pas websockets et quoi d'autre. – Brad

Questions connexes