您的位置:首页 > 其它

基于udp socket 通讯

2016-02-16 15:59 183 查看
//首先建立基于UDP的Socket连接  AsyncUdpSocket *updSocket
-(void)openUDPServer{
//初始化udp
AsyncUdpSocket *tempSocket=[[AsyncUdpSocket alloc] initWithDelegate:self];
self.updSocket=tempSocket;
[tempSocket release];
//绑定端口
NSError *error = nil;
[self.updSocket bindToPort:4333 error:&error];
[self.updSocket joinMulticastGroup:@"224.0.0.1" error:&error];

//启动接收线程
[self.updSocket receiveWithTimeout:-1 tag:0];

}

//连接建好后处理相应send Events
-(void)sendMessage:(NSString*)message
{
NSMutableString *sendString = [NSMutableString stringWithCapacity:100];
[sendString appendString:message];
//开始发送
BOOL res = [self.updSocket sendData:[sendString dataUsingEncoding:NSUTF8StringEncoding]
toHost:@"224.0.0.1"
port:4333
withTimeout:-1
tag:0];

NSLog(@"%@",sendString);
if(res)
{
NSLog(@"xxxxffff");
}
else {
NSLog(@"error");
}
}

-(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port
{
NSLog(@"onUdpSocket successful");
//已经处理完毕  do something
return YES;
}

-(void)onUdpSocket:(AsyncUdpSocket *)sock didNotSendDataWithTag:(long)tag dueToError:(NSError *)error
{
//无法发送时,返回的异常提示信息  do something
NSLog(@"error1");
}

-(void)onUdpSocket:(AsyncUdpSocket *)sock didNotReceiveDataWithTag:(long)tag dueToError:(NSError *)error
{
//无法接收时,返回异常提示信息   do something
NSLog(@"error2");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: