• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

UDP Listener mit CFSocket

007sascha

Alkmene
Registriert
08.09.08
Beiträge
35
Hallo,
ich bin relativ neu beim Objective-C Programmieren und habe daher noch etliche Fragen.
Ich würde gerne ein Programm schreiben das auf einem Port Daten per UDP empfängt und erstmal nur direkt wieder per NSLog wieder ausgibt. Ich scheitere aber bereit beim Datenempfang per CFSocket. Die Refs und bisher gefundenen Beispiele sind mir nicht sehr verständlich bzw. schon wieder zu komplex.
Wie genau funktioniert das mit den CallBack´s?
Was ich bisher schon grob habe:
Code:
-(void)startConnect{
	CFSocketRef cfSocket=CFSocketCreate(kCFAllocatorDefault, PF_INET, SOCK_DGRAM, IPPROTO_UDP, kCFSocketDataCallBack, ??????, NULL);
	if (cfSocket==NULL)
        NSLog(@"CFSocketCreate failed");
	
	struct sockaddr_in addr;
	memset(&addr,0, sizeof(addr));
	addr.sin_len=sizeof(addr);
	addr.sin_family=AF_INET;
	addr.sin_port=htons(40005);
	addr.sin_addr.s_addr=htonl(INADDR_ANY);
	NSData *address=[NSData dataWithBytes:&addr length:sizeof(addr)];
	if(kCFSocketSuccess != CFSocketSetAddress(cfSocket, (CFDataRef)address))
        NSLog(@"CFSocketSetAddress failed");
	CFRunLoopSourceRef rls = CFSocketCreateRunLoopSource(kCFAllocatorDefault, cfSocket, 0);
    CFRunLoopAddSource(CFRunLoopGetCurrent(), rls, kCFRunLoopCommonModes);
    CFRelease(rls);
}
Kann mir jemand weiterhelfen?
Gruß Sascha