如何通过UDP CFSocket发送数据包?

如何通过UDP CFSocket发送数据包?,第1张

概述我是网络的完全新手,但我是一名c / c程序员,我正在使用objective-c(这是针对OSX / iPhone). 我正在尝试学习如何使用cfsocket发送带有UDP套接字的魔术包.我已经看到有像AsyncUDPSocket库这样的库,但是我不想使用它们. 我试图查看苹果UDPecho文件,但作为一个初学者它确实让我困惑.我用Google搜索了ALOT,我把下面的代码放在一起,我有一个数据包 我是网络的完全新手,但我是一名c / c程序员,我正在使用objective-c(这是针对OSX / iPhone).

我正在尝试学习如何使用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发送数据包?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1034306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存