文档章节

socket udp

木木情深
 木木情深
发布于 2014/02/28 10:21
字数 378
阅读 169
收藏 0

基于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(@"客户端---断开连接");

}





© 著作权归作者所有

木木情深
粉丝 37
博文 189
码字总数 26451
作品 0
广州
程序员
私信 提问
UDP的epoll并发处理问题-解决OpenVPN的多线程并发问题

UDP具有是一种很好的封装协议,比如OpenVPN使用UDP封装会比TCP好很多,现在越来越多的业务采用UDP传输,然后自己定义按序到达以及流控 逻辑,然而就我个人的使用经验来看,UDP太难做并发,大...

dog250
2016/01/21
0
0
C#网络编程系列文章(五)之Socket实现异步UDP服务器

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编...

zhujunxxxxx
2015/03/15
0
0
python的Socket编程基础

下面一些是python网络编程基础知识,很少在项目中直接使用,都是用的twisted,gevent,tornado等网络框架.但是学习基础知识可以弄懂socket流程. python的socket模块的网络编程步骤和linux c基本一...

flyking
2013/10/23
0
0
柳大的Linux讲义·基础篇(4)网络编程基础

柳大的Linux游记·基础篇(4)网络编程基础 Author: 柳大·Poechant Blog: Blog.CSDN.net/Poechant Email:zhongchao.usytc#gmail.com (#->@) Date:March 11th, 2012 Copyright © 柳大·P......

晨曦之光
2012/04/24
82
0
Python网络通信UDP广播流程

1.导入套接字 from socket import * 2.创建UDP套接字 udpsocket = socket(AFINET, SOCK_DGRAM) 3.绑定地址和端口 dest = ("<broadcast>", 8080) 4.设置套接字选项 udpsocket.setsockopt(SOL......

赶时间的大熊
2017/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Webpack打包优化:使用外链与拆包模式

一、发现问题 这是一个基于 vue-cli 的管理后台项目,由于依赖较多,打包结果如下 二、查找原因 为什么 vendor 体积这么大? 引用的库太多时,vendor的体积会很大,借助 Webpack 的分析工具,...

AI考拉
35分钟前
1
0
MSSQL-最佳实践-Always Encrypted

author: 风移 摘要 在SQL Server安全系列专题月报分享中,往期我们已经陆续分享了:如何使用对称密钥实现SQL Server列加密技术、使用非对称密钥实现SQL Server列加密、使用混合密钥实现SQL S...

阿里云云栖社区
37分钟前
7
0
ES 集群上,业务单点如何优化升级?

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一、ES 基础 ES 的安装下载,网上一大片,我这...

泥瓦匠BYSocket
52分钟前
8
0
input accept属性限制文件上传格式

上传文件的类型;具体做法如下所示: 注意:accept属性可以限制上传格式,其有兼容性如下 《1》上传.csv格式的 <input text="file" accept=".csv" /> 《2》上传.xls格式 <input text="file"......

Jack088
今天
2
0
使用scp命令在多个Linux系统间进行文件复制

一,什么是scp scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp命令可以在linux服务器之间复制文件和目录.scp使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远...

老孟的Linux私房菜
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部