Bonjour,
J'aimerai échanger des paquets UDP entre l'iPhone et le Mac. Pour cela j'ai mis en place un réseau ad-hoc sur le Mac auquel l'iPhone se connecte.
Mon iPhone est le client, le Mac le serveur. Pour le client j'utilise les CFSocket. Le client envoie une simple chaîne de caractère au serveur qui lui se charge de l'afficher à l'écran.
Mon programme fonctionne avec le simulateur mais pas avec l'iPhone.
Est-ce qu'il y a quelque chose de plus à faire du fait qu'il s'agisse d'une connexion WiFi ?
Merci de vos réponses !
Code Serveur :
Code client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 void serveur(){ int sock; char buf[100]; int error; struct sockaddr_in addr; sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); addr.sin_len = sizeof(addr); addr.sin_family = AF_INET; addr.sin_port = htons(PORT); addr.sin_addr.s_addr = INADDR_ANY; bind(sock, (const struct sockaddr *) &addr, addr.sin_len); error = recvfrom(sock, buf, 100, 0, NULL, NULL); if(error < 0) { NSLog(@"Error recvfrom"); } else { printf("%s", buf); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 void debutClient(){ NSLog(@"Client\n"); struct sockaddr_in addr; addr.sin_len = sizeof(addr); addr.sin_family = AF_INET; addr.sin_port = htons(PORT); addr.sin_addr.s_addr = INADDR_ANY; CFSocketRef sock = CFSocketCreate(kCFAllocatorDefault, PF_INET, SOCK_DGRAM, IPPROTO_UDP, NULL, NULL, NULL); NSData *destinationAddressData = [NSData dataWithBytes:&addr length:sizeof(addr)]; NSString *message = @"hello !"; NSData *message_data = [message dataUsingEncoding:NSUTF8StringEncoding]; CFSocketError socket_error = CFSocketSendData(sock, (CFDataRef)destinationAddressData, (CFDataRef)message_data, 0); if(socket_error < 0) { NSLog(@"Error send data!"); } }
Partager