2017-02-01 3 views
1

Используя этот C# пример TCP сервера в рамках проекта UnityПонимание Делегаты и Callbacks

https://www.codeproject.com/articles/488668/csharp-tcp-server

Примечания упомянуть Есть 3 обратного вызова событий OnConnect, OnDataAvailable и OnError. Есть 2 примера обратного вызова со следующими подписями

private void tcpServer1_OnDataAvailable(tcpServer.TcpServerConnection connection) 

мне нужно делать ничего особенного, или в дополнение, чтобы включить эти функции обратного вызова или tcpServer1_OnDataAvailable consdiered зарезервированное имя обработчика, который автоматически вызывается делать?

TcpServer tcpServer1 = new TcpServer(); //in constructor (auto added if added as a component) 

private void openTcpPort(int port) 
{ 
    tcpServer1.Port = port; 
    tcpServer1.Open(); 
} 

private void closeTcpPort() 
{ 
    tcpServer1.Close(); 
} 
+0

вам необходимо зарегистрировать обратный вызов с событиями, указанными в типе 'TCPServer ' –

+0

Посмотрите на msdn. Вы можете заменить класс сокета в коде любым классом, который наследует класс сокета, такой как TcpClient и TcpListener: https://msdn.microsoft.com/en-us/library/w89fhyex(v=vs.110).aspx – jdweng

ответ

0

Вам необходимо зарегистрировать делегаты обработчиков событий для определенных событий.

TcpServer tcpServer1 = new TcpServer(); 

// register event handler 
tcpServer1.OnDataAvailable += tcpServer1_OnDataAvailable; 


private void tcpServer1_OnDataAvailable(tcpServer.TcpServerConnection connection) 
{ 
    // do work 
} 
0

Обратные вызовы - это методы, вызываемые при возникновении события, которое вас интересует. Вы на самом деле нужно, чтобы установить их, как это:

tcpServer1.OnConnect += serverConnection => 
{ 
    //code to do stuff when a connection happens goes here 
} 

tcpServer1.OnDataAvailable += serverConnection => 
{ 
    //code to do stuff when data is available here 
} 

tcpServer1.OnError += serverConnection => 
{ 
    //code to do stuff when an error happens here 
} 

Вы должны поместить этот код в конструкторе, после того момента времени, когда переменная tcpServer1 является экземпляр с оператором нового.

Смежные вопросы