Maison  >  Questions et réponses  >  le corps du texte

objective-c - iOS 使用GCDAsyncSocket建立长连接发送消息

iOS 使用GCDAsyncSocket建立长连接发送消息,为什么没发送一条消息就要初始化GCDAsyncSocket一次,是不是我的代码哪里写错了

这个是发送消息按钮方法,当我GCDAsyncSocket初始化写到viewDidLoad,就服务器就接受不到消息

-(void)allPhotoAction:(UIButton *)btn{

//建立连接
NSString *host = @"192.168.0.199";
int port = 54111;
asyncsocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
asyncsocket.delegate = self;
NSError *error = nil;
if (![asyncsocket connectToHost:host onPort:port error:&error]) {
    //该方法异步
    GFFLog(@"%@",  @"连接服务器失败");
}

NSString *sendMessage = @"25";

[asyncsocket writeData:[sendMessage dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:1];

}

怪我咯怪我咯2749 Il y a quelques jours736

répondre à tous(1)je répondrai

  • 给我你的怀抱

    给我你的怀抱2017-05-02 09:32:53

    Il est recommandé de regarder des exemples plus officiels.

    Le succès renvoyé en appelant connectToHost ne signifie pas que vous êtes connecté, cela signifie simplement qu'il n'y a rien de mal avec l'hôte et le port que vous avez entrés. Il a une méthode de rappel pour une connexion réussie, et appelez writeData après cette méthode. . Pour maintenir une longue connexion, read doit être appelé après chaque écriture/réception pour que le socket continue d'écouter.

    répondre
    0
  • Annulerrépondre