第三方开源类库AsyncSocket-TCP

本文分享了使用AsyncSocket实现即时通讯项目的经验,详细介绍了TCP连接设置、数据收发及监听过程,并提及了UDP的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做了好久即时通讯的项目,给大家分享一下自己小小的经验。   AsyncSocket是一个第三方封装好的Socket    之前多废话几句

导入工程后如果你是TCP的话 直接添加头文件AsyncSocket.h就可以了  如果你是UDP 导入AsyncUdpSocket.h


首先    

 设置scoket代理 

clientSocket = [[AsyncSocket alloc]initWithDelegate:self];//设置代理
    
    [clientSocket setRunLoopModes:[NSArray arrayWithObject:NSRunLoopCommonModes]];
    
进行连接
    if(![clientSocket connectToHost:@"xxx.xxx.x.xxx" onPort:portLogin error:&error])
    {
        NSLog(@"连接错误");
    }

连接成功后 会调用以下代理方法

- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port
{//连接成功后你需要进行什么操作 在这里做就可以了。。。  有点废话了}


连接错误会调用

//Socket出现错误
- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err
{
    NSLog(@"willDisconnectWithError:%@",err);
}


数据发送后在此调用 读取 

- (void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag
{
    [sock readDataWithTimeout: -1 tag:0];//进行监听
}


读取数据 如果此时有数据返回时会进入到下面这个代理方法

//读取数据&处理接收的数据
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{//对数据进行处理 如:你的数据包有标识符 长度那需要你们自己和服务端进行沟通 数据包是什么结构的了}


写入数据发送数据 只要有发送数据的事件必须要监听 如果你只发送了数据  没有进行监听  那恭喜你 你永远得不到数据

[clientSocket writeData:[DataManager initWithData:[ReturnInformation loginInformation]] withTimeout:-1 tag:0];
    
    [clientSocket readDataWithTimeout:-1 tag:0];//监听


有的朋友会问我用的是socket  但是我需要发送语音该怎么办 下一章我会给大家分享如何使用Speex传送语音文件


UDP不需要我说了  大家自己看吧


转载需标明连接 3Q





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值