博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
socket udp
阅读量:6405 次
发布时间:2019-06-23

本文共 2088 字,大约阅读时间需要 6 分钟。

hot3.png

基于udp的socket编程第三方库,需导入头文件 AsycUdpSocket.h

服务器端:

//1.初始化serversocket

    AsyncUdpSocket *serverSocket=[[AsyncUdpSocket alloc]initWithDelegate:self];

//2.绑定端口

    [serverSocket bindToPort:0x1234 error:nil];

//3.开始监听

    [serverSocket receiveWithTimeout:-1 tag:0];

//4.实现代理方法   

- (void)onUdpSocket:(AsyncUdpSocket *)sock didSendDataWithTag:(long)tag{

    NSLog(@"服务端---发送数据成功");

}

- (void)onUdpSocket:(AsyncUdpSocket *)sock didNotSendDataWithTag:(long)tag dueToError:(NSError *)error{

    NSLog(@"服务端--发送数据失败");

}

- (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port{

    NSLog(@"服务端--接收到数据--来自%@:%hu  tag:%ld",host,port,tag);

    NSString *msg=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

    NSLog(@"消息是:%@",msg);

    //默认收到一次就断开,如果想让一直监听,就在下面让它继续监听

    [sock receiveWithTimeout:-1 tag:0];

    return YES;

}

- (void)onUdpSocket:(AsyncUdpSocket *)sock didNotReceiveDataWithTag:(long)tag dueToError:(NSError *)error{

    NSLog(@"服务端--没有接收到数据");

}

- (void)onUdpSocketDidClose:(AsyncUdpSocket *)sock{

    NSLog(@"服务端---断开连接");

}

//5.关闭服务端

[serverSocket close];

客户端:

//1.初始化clientsocket

    clientSocket=[[AsyncUdpSocket alloc]initWithDelegate:self];

//2.发送消息

    NSString *sendMessage=@"这是我发送的消息,哈哈哈哈哈";

    NSData *msgData=[sendMessage dataUsingEncoding:NSUTF8StringEncoding];

    

    [clientSocket sendData:msgData toHost:@"192.168.101.182" port:0x1234 withTimeout:5 tag:1];

//3.实现代理方法

- (void)onUdpSocket:(AsyncUdpSocket *)sock didSendDataWithTag:(long)tag{

    NSLog(@"客户端---发送数据成功");

}

- (void)onUdpSocket:(AsyncUdpSocket *)sock didNotSendDataWithTag:(long)tag dueToError:(NSError *)error{

    NSLog(@"客户端--发送数据失败");

}

- (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port{

    NSLog(@"客户端--接收到数据--来自%@:%hu",host,port);

    return YES;

}

- (void)onUdpSocket:(AsyncUdpSocket *)sock didNotReceiveDataWithTag:(long)tag dueToError:(NSError *)error{

    NSLog(@"客户端--没有接收到数据");

}

- (void)onUdpSocketDidClose:(AsyncUdpSocket *)sock{

    NSLog(@"客户端---断开连接");

}

转载于:https://my.oschina.net/starmier/blog/203877

你可能感兴趣的文章
java连接数据库并操作
查看>>
安装.net framework 4.0时提示HRESULT 0xc8000222
查看>>
集群下文件同步问题
查看>>
ASA 5510 V821 EASY ×××配置
查看>>
ubuntu server 更换源
查看>>
SQL SERVER 2008安装
查看>>
EXT中的gridpanel自适应窗口的方法
查看>>
unary operator expected
查看>>
IPC之共享内存
查看>>
新加坡之旅
查看>>
IBM X3650 M3服务器上RAID配置实战
查看>>
Mysql DBA 高级运维学习之路-索引知识及创建索引的多种方法实战
查看>>
go语言与java nio通信,解析命令调用上下文拉起ffmpeg,并引入livego做的简单流媒体服务器...
查看>>
JavaScript面向对象轻松入门之多态(demo by ES5、ES6、TypeScript)
查看>>
【数据结构】线性表(一):顺序列表
查看>>
利用Mallet工具自动挖掘文本Topic
查看>>
Windows下oracle打补丁步骤
查看>>
Python教程(一)Python简介
查看>>
asp.net forms认证
查看>>
一帧图像的两种显示器建模方式
查看>>