我正在尝试学习如何使用cfsocket发送带有UDP套接字的魔术包.我已经看到有像AsyncUDPSocket库这样的库,但是我不想使用它们.
我试图查看苹果UDPecho文件,但作为一个初学者它确实让我困惑.我用Google搜索了ALOT,我把下面的代码放在一起,我有一个数据包嗅探器正在运行,它没有注册任何被发送的内容.我理解我的代码缺少很多错误捕获,但我只是想先了解基础知识.
这段代码对吗? (道歉,如果这种接缝含糊不清)我的意思是我错过了代码的某些阶段,例如:CFSocketSetAddress?
如果有人知道任何非常好的教程,它会有所帮助.
非常感谢任何帮助,因为我是一个完整的初学者.
谢谢
int main (int argc,const char * argv[]){ NSautoreleasePool * pool = [[NSautoreleasePool alloc] init]; CFSocketRef Wolsocket; Wolsocket = CFSocketCreate(kcfAllocatorDefault,PF_INET,SOCK_DGRAM,IPPROTO_UDP,NulL,NulL); if ( socket == NulL) { NSLog(@"CfSocketCreate Failed"); }else{ if( socket ) { NSLog(@"Socket created :)"); struct sockaddr_in addr; memset(&addr,sizeof(addr)); addr.sin_len = sizeof(addr); addr.sin_family = AF_INET; addr.sin_port = htons(9); //port inet_aton("255.255.255.255",&addr.sin_addr); //ip adress char ethadd []= "helloworld"; CFDataRef Data = CFDataCreate(NulL,(const UInt8*)ethadd,sizeof(ethadd)); CFSocketSendData(socket,Data,0);} } [pool drain]; return 0;}解决方法 您的问题非常简单:您没有告诉CFSocket您希望它在哪里发送数据.
您在addr中仔细构造一个地址,但不要使用它.您需要调用CFSocketSetAddress来设置套接字上的目标地址(如果您希望发送的所有数据包都转到同一目的地),或者将该地址作为第二个参数传递给CFSocketSendData.
总结以上是内存溢出为你收集整理的如何通过UDP CFSocket发送数据包?全部内容,希望文章能够帮你解决如何通过UDP CFSocket发送数据包?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)