IOS开发中socket第三方库 AsyncSocket的问题-问答-阿里云开发者社区-阿里云

开发者社区> 杨冬芳> 正文

IOS开发中socket第三方库 AsyncSocket的问题

2016-06-27 16:49:22 2006 1

在一个ios应用中我使用socket第三方库 AsyncSocket来实现手机客户端和PC服务器端的通信。服务器可以收到客户端发来信息,也有返回信息,但是客户端却没有收到这个返回的信息,这个为什么呢?下面是一部分代码

import "ViewController.h"

@implementation ViewController
@synthesize socket;
@synthesize host;
@synthesize message;
@synthesize port;
@synthesize status;
@synthesize button;

  • (void)didReceiveMemoryWarning
    {

    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.

    }

#pragma mark - View lifecycle
-(void)addText:(NSString *)str
{

 status.text = [status.text stringByAppendingFormat:@"%@\n",str];

}

  • (void)viewDidLoad
    {

    [super viewDidLoad];
    host.text = @"61.191.200.214";
    port.text = @"9631";
    
    [button setTitle:@"连接" forState:UIControlStateNormal];

    }

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{

 [textField resignFirstResponder];
 return YES;

}

  • (void)viewDidUnload
    {
    [self setHost:nil];
    [self setMessage:nil];
    [self setStatus:nil];
    [self setPort:nil];
    [super viewDidUnload];
    }
  • (void)viewWillAppear:(BOOL)animated
    {
    [super viewWillAppear:animated];
    }
  • (void)viewDidAppear:(BOOL)animated
    {
    [super viewDidAppear:animated];
    }
  • (void)viewWillDisappear:(BOOL)animated
    {
    [super viewWillDisappear:animated];
    }
  • (void)viewDidDisappear:(BOOL)animated
    {
    [super viewDidDisappear:animated];
    }
  • (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    }

-(void)socket:(GCDAsyncSocket )sock didConnectToHost:(NSString )host port:(uint16_t)port
{

 [self addText:[NSString stringWithFormat:@"连接到:%@",host]];
 [socket readDataWithTimeout:-1 tag:0];

}

  • (void)socketDidDisconnect:(GCDAsyncSocket )sock withError:(NSError )err
    {

}

  • (IBAction)send:(id)sender { //开始按钮
    //连接服务器端
    socket = [[GCDAsyncSocket alloc]initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
    NSError *err = nil;
    if(![socket connectToHost:host.text onPort:[port.text intValue] error:&err])
    {

     [self addText:err.description];

    }else
    {

     [self addText:[NSString stringWithFormat: @"打开%@端口",socket.localHost]];

    }

    //发送数据
    if (message.text.length!=0){

     NSString* str_send=[[NSString alloc] initWithString:[NSString stringWithFormat:@"send%@",message.text]];
     [socket writeData:[str_send dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:-1];
     [self addText:[NSString stringWithFormat:@"发送:%@",message.text]];
         

    }else{

     NSString* str_send= @"receive";
     [socket writeData:[str_send dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:-1];
     [message resignFirstResponder];
     [socket readDataWithTimeout:-1 tag:0];

    }
    }

-(void)socket:(GCDAsyncSocket )sock didReadData:(NSData )data withTag:(long)tag
{

 NSString *receive = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
 [self addText:[NSString stringWithFormat:@"%@:%@",sock.connectedHost,receive]];
 [socket readDataWithTimeout:-1 tag:0];

}

@end

取消 提交回答
全部回答(1)
相关问答

8

回答

短视频SDK如何做到视频原始比例裁剪?

樰篱 2017-09-13 17:35:01 39321浏览量 回答数 8

11

回答

iphone设置阿里云邮箱的步骤

minioba 2013-04-24 22:04:37 101698浏览量 回答数 11

38

回答

【hi聊】2019年终回顾:程序员这些年经历最大的变化

问问小秘 2019-12-16 16:46:59 44996浏览量 回答数 38

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 92862浏览量 回答数 28

1

回答

2020年阿里、字节:一套高效的iOS面试题(二)

montos 2020-04-13 15:08:17 36141浏览量 回答数 1

87

回答

ECS云服务器用户操作帮助指南(官方)

qilu 2014-10-22 12:25:15 43017浏览量 回答数 87

11

回答

如何直接上传文件至OSS,不用服务器中转

cevin 2014-01-06 23:05:39 38351浏览量 回答数 11

3

回答

2020年05月编程排行榜-C语言继2015年,重新成为编程排行榜第一名

huc_逆天 2020-05-06 13:43:42 35308浏览量 回答数 3

58

回答

技术入门问答集锦,涉及多种技术方向,解决新人学习困惑

管理贝贝 2016-08-03 10:13:27 52456浏览量 回答数 58

46

回答

H5技术百问——不懂H5你就OUT啦

yq传送门 2017-09-09 11:03:04 47056浏览量 回答数 46
+关注
杨冬芳
IT从业
1
文章
9167
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载