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];
}
Adalah disyorkan untuk melihat lebih banyak contoh rasmi.
Kejayaan dikembalikan dengan memanggil
connectToHost
tidak bermakna anda disambungkan, ia hanya bermakna tiada yang salah dengan hos dan port yang anda masukkan Ia mempunyai kaedah panggil balik untuk sambungan yang berjaya, dan panggil writeData selepas kaedah itu . Untuk mengekalkan sambungan yang panjang, baca mesti dipanggil selepas setiap tulis/terima untuk memastikan soket mendengar.