科技超越了你 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 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试