示例#1
0
        // 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());
 }
示例#4
0
        // 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);
            }
        }