Несколько соединений GCDAsyncSocket не будут принимать данные из нескольких сокетов

Я пытаюсь написать приложение, которое одновременно подключается к нескольким сокетам, у меня возникают проблемы с получением данных из старого сокета при подключении нового.

Главное, чтобы делегат не активировался ранее подключенным сокетом.

Это моя общая программа

var struct = [serverlist]() //Create array for sockets and serverinfo

func connect() {
    //Init socket 
    struct[item].socket = GCDAsyncSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
    //Create error message
    var connectionError: NSError?
    //connect socket
    struct[item].socket!.connectToHost(struct[item].Serveraddress, onPort: struct[item].serverport, error: &connectionError)
}

func socket(socket : GCDAsyncSocket, didReadData data:NSData, withTag tag:Int32)
{
      //Do stuff like print data
}

Это моя структура для хранения сокетов

struct serverlist 
{ 
    var Serveraddress = String(); 
    var socket = GCDAsyncSocket?(); 
}

ПРИМЕЧАНИЕ Я проверил, что оба сокета по-прежнему подключены к разным IP-адресам с помощью приведенного ниже кода.

println(Liststucture[x].socket?.isDisconnected) 
println(Liststucture[x].socket?.connectedHost) 

person nsij22    schedule 29.04.2015    source источник
comment
Примечание. Я переключил все обратно на NSStream и у меня работает несколько подключений, но я хотел бы вернуться к этой структуре, если это возможно, но уже потратил на нее много времени, поэтому в основном отказался.   -  person nsij22    schedule 30.04.2015