2 xm9572 xm9572 于 2014.06.11 13:26 提问

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 始终不执行,接收不到数据,看说明,是要读完请求数据到内存才调用,请问,它的读完是怎么来识别呢?

2个回答

u013482764
u013482764   2015.07.27 09:53

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

u013482764
u013482764   2015.07.27 09:54

你现在这个问题解决了吗,能否告诉我如何解决

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!