내 실제 프로젝트에 대해 미쳐 가고 있습니다 ...iPhone iOS4.2의 특정 포트에서 수신하는 방법은 무엇입니까?
특정 포트에서 데이터를 전송하는 장치가 있습니다. 내 목표는 해당 포트에서 모든 종류의 장치를 감지하는 것입니다. 예 : 동일한 네트워크에 4 개의 장치가 있으며 iPhone에서이 장치를 모두 감지합니다.
JAVA 발견 도구와 함께 작동하며 이제는 iPhone에서 수행하려고합니다.
는 도구 JAVA에서 사용되는 단계가을 발견하는 있습니다
- 이 DatagramSocket로 만들기 (JAVA)
- 는 브로드 캐스트 주소 (255.255.255.255)를 가져
- DatagramPacket의 (JAVA)
- 만들기 포트 30303을 사용하여 브로드 캐스트 주소로 패킷 보내기
- 수신 모드로 이동
- 소켓으로 인해 응답이 발생 함 ERS 패킷
- AsyncUdpSocket 클래스를 사용하여 내가 같은 단계를 repoduce하려고
IP와 장치에서 호스트 이름을 추출 : 여기 http://code.google.com/p/cocoaasyncsocket/
과 내가 지금까지 시도 코드는 다음과 같습니다
NSError *e;
NSString *d = @"abcd";
NSData *data = [d dataUsingEncoding:NSUTF8StringEncoding];
ssocket = [[AsyncUdpSocket alloc]initWithDelegate:self];
[ssocket setDelegate:self];
[ssocket enableBroadcast:YES error:&e];
[ssocket connectToHost:@"255.255.255.255" onPort:30303 error:&e];
[ssocket sendData:data withTimeout:-1 tag:0];
[ssocket receiveWithTimeout:-1 tag:0];
이
위임 호출되지 않습니다 - (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port
...
내가 무엇을 모르는 틀렸어.이 주제에 대해 너의 의견을 말해 줄 수 있니? 올바른 방법론을 사용하고 있고 내가 잘못했는지 확인하십시오. ??
미리 감사드립니다.
MoKeS
편집 :
내가 JavaDiscoverTool 내 응용 프로그램과 네트워크 트래픽을 도청 와이어 샤크를 사용했다. 사실 2 패킷 (아이폰과 javadiscovertool의 차이)은 소스 포트입니다. 사실, 내 응용 프로그램에서 원본 포트가 대상 포트와 다르며 문제가 원인이라고 생각합니다. 보내는 패킷에 원본 포트를 강제로 보내는 방법을 찾아야합니다 ...
아이디어가 있으십니까? AsyncUdpSocket 클래스에 있습니다.
가 오류 개체를 검사 해달라고? 그것이 그들이 잘하는 일입니다. – GorillaPatch