2010-11-09 15 views
17

Est-ce que quelqu'un a de bons tutoriels sur l'envoi de paquets UDP depuis le SDK iPhone?Envoi de paquets UDP à partir de l'iPhone

EDIT:

était en fait vraiment facile à faire ...

RTFM!

Après prise en compte AsyncUdpSocket ajouter ceci en tête:

AsyncUdpSocket *socket; 

Et principal:

NSData *data = ... 
[socket sendData:data toHost:@"192.168.x.x" port:5002 withTimeout:-1 tag:1]; 

Lorsque le test ne faut pas oublier de permettre la communication UDP sur votre pare-feu du serveur!

+0

Un peu d'histoire ... à un moment donné, il y avait la bibliothèque absolument INCROYABLE AsyncSocket, créée à l'origine par le mystérieux Dustin J. Voss. (parfois connu sous le nom de CocoaAsyncSocket.) À un moment donné, il est venu avec un exemple de code UDP facile et il était au cœur du développement iOS. Probablement encore précieux si vous pouvez le déterrer. C'était une bibliothèque incroyable. – Fattie

+0

comment gérer si l'adresse IP varie – remyr3my

+0

@ Cyph3r Vous devez utiliser une logique personnalisée pour définir une variable 'NSString', que vous pouvez passer dans le paramètre' toHost'. Ou bien, utilisez un domaine et configurez un enregistrement DNS au lieu d'utiliser l'adresse IP et mettez-le à jour si nécessaire. Cela dépend complètement de ce que vous essayez de faire. –

Répondre

15

CocoaAsyncSocket est une bibliothèque agréable qui contient une classe appelée AsyncUdpSocket qui est un wrapper Obj-C autour de l'API de socket de niveau inférieur.

+0

Je vais vous donner la bonne réponse que vous m'avez fait sur le chemin! Pour toute personne lisant cette question avec le même problème j'ai posté du code comme un edit dans la question. –

+0

Lien ne fonctionne plus :-( – Xander

+0

Lien mis à jour vers ce qui semble être sa nouvelle maison sur github: https://github.com/robbiehanson/CocoaAsyncSocket –

2

Vous pouvez utiliser le framwork CFNetwork pour créer un socket UDP avec CFSocket. Voici le CFSocket reference.

+0

Donc, pour envoyer un paquet UDP à mon serveur, est-ce que j'utilise simplement CFSocketSendData? –

+0

Oui, après CFSocketCreate avec IPPROTO_UDP, vous pouvez utiliser CFSocketSendData. La liste de diffusion Mac Network Programming est un bon endroit pour trouver des exemples: http://lists.apple.com/archives/macnetworkprog/ – Donald

+0

AsyncUdpSocket était beaucoup plus simple! :) –