// listens for incoming transmissions private void ServerTask() { try { // initialize tcp listener m_TCPListener = new TcpListener(m_ServerIP, m_ServerPort); m_TCPListener.Start(); Console.WriteLine("Listening for incoming data..."); while (m_bRunThread) { // block until connection established m_ClientSocket = m_TCPListener.AcceptSocket(); // if client connected start receiving thread if (m_ClientSocket.Connected) { Console.WriteLine("Receiving data from: " + m_ClientSocket.RemoteEndPoint.ToString()); // get bytes int numbytes = m_ClientSocket.Receive(m_LastReceivedData); Console.WriteLine("Received " + numbytes.ToString() + " bytes from: " + m_ClientSocket.RemoteEndPoint.ToString()); // disconnect m_ClientSocket.Disconnect(true); // try to parse incoming data to network package struct NetworkPackage nwPackage = new NetworkPackage(); nwPackage = (NetworkPackage)Etc.ByteArrayToObject(m_LastReceivedData, nwPackage.GetType()); // trigger event OnNetworkReceivedData(nwPackage); } } } catch (SocketException se) { OnNetworkError(se); } catch (SystemException e) { OnNetworkError(e); } }
private NetworkPackageValue GetNetworkPackageValue(NetworkPackage networkPackage, string propName) { return((NetworkPackageValue)networkPackage.GetType().GetProperty(propName).GetValue(networkPackage, null)); }
private List <PropertyInfo> GetPropertyInfos(NetworkPackage networkPackage) { return(networkPackage.GetType().GetProperties().ToList()); }