本帖最后由 lanyu1986 于 2014-09-25 15:18:19 编辑

解决方案 »

  1.   

    我发现是不是udp和tcp的问题,采用tcp我能有返回      udp就没有      但是这个广播走的是udp呀    没有返回怎么解?
      

  2.   

    没用过这些类,都是直接操作socket原语。确定那个回掉是发送的回调而不是收到数据的回调?
      

  3.   

    我好像找到原因了,你在-(void)SerachForDevices函数的最后没有调用 CFRunLoopRun(); runloop没有开启,就接受不到已经连接上的消息。这里面的回调消息应该是runloop来处理的,CFRunLoopSourceRef sourceRef = CFSocketCreateRunLoopSource(kCFAllocatorDefault, sock_server, 0);这里的source是由socket构建的,然后加入到runloop里面。runloop我也不是很清楚,不过它是会接受特定的消息源,这里的CFRunLoopSourceRef应该是它的一种消息源。runloop没开启,就没人来处理回调消息了。