科技超越了你 2014-06-11 05:26 采纳率: 0%
浏览 4080

AsyncSocket异步TCP中,didReadData不接收数据

大家好,我遇到一个头痛的问题,我写的TCP异步客户端一直接收不到数据,请大大们指教。

我们的服务端,是用C#写的,TCP是长链接,始终用同一个链接发送和接收数据,服务端用别的程序测试是没问题的。

以下是我的代码:

self.outSocket =[[AsyncSocket alloc]init];
self.outSocket.delegate =self ;

if(![self.outSocket connectToHost:@"192.168.43.30" onPort:5220 error:&err])
{
NSLog(@"Error: %@", err);
}

NSString * jsonString =[NSString stringWithFormat:@"{Action:\"GetActList\",PageIndex:\"1\",title:\"登山\",desctination:\"\",startCity:\"深圳\",theme:\"\",startTime:\"\",status:\"\",actType:\"AA\",sort:\"create\"}"];

NSData *data =[jsonString dataUsingEncoding:NSUTF8StringEncoding];

[self.outSocket writeData:data withTimeout:-1 tag:0];
[self.outSocket readDataToData:[AsyncSocket CRLFData] withTimeout:-1 tag:0];

-(void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{
NSLog(@"%d",data.length);
NSString * sting =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",sting);
}

  • (void)onSocket:(AsyncSocket *)sock didReadPartialDataOfLength:(NSUInteger)partialLength tag:(long)tag{ NSLog(@"Received bytes: %d",partialLength); }

didReadPartialDataOfLength 这个可以接收到。

didReadData 始终不执行,接收不到数据,看说明,是要读完请求数据到内存才调用,请问,它的读完是怎么来识别呢?

  • 写回答

1条回答

  • ArthurSora 2015-07-27 01:53
    关注

    我的情况是:didReadPartialDataOfLength, didReadData两个方法都执行不到
    我用的是GCDAsyncSocket这个框架

    评论

报告相同问题?

悬赏问题

  • ¥15 优质github账号直接兑换rmb,感兴趣伙伴可以私信
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)