objective-c - iOS 使用GCDAsyncSocket建立長連線傳送訊息
怪我咯
怪我咯 2017-05-02 09:30:53
0
1
746

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];

}

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(1)
给我你的怀抱

建議多看看官方的例子。

呼叫 connectToHost 回傳的成功並不表示你連上了,只是說你輸入的host和port沒啥問題,它有個連接成功的回調方法,在那個方法之後再呼叫 writeData 。要保持長連結必須在每次 write/receive 後呼叫 read,以保持socket持續監聽。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板