Я пытаюсь написать приложение, которое одновременно подключается к нескольким сокетам, у меня возникают проблемы с получением данных из старого сокета при подключении нового.
Главное, чтобы делегат не активировался ранее подключенным сокетом.
Это моя общая программа
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)