Exemplo n.º 1
0
        public void PerformRequest()
        {
            ResponseMessage = null;
            WaitHandle.Reset();
            EndPoint epStun = SocketServer.ConnectMgr.GetIPEndpoint(StunServer, StunPort);

            STUNMessage msgRequest = new STUNMessage();
            msgRequest.Method = StunMethod.Binding;
            msgRequest.Class = StunClass.Request;

            MappedAddressAttribute mattr = new MappedAddressAttribute();
            mattr.IPAddress = LocalEndpoint.Address;
            mattr.Port = (ushort) LocalEndpoint.Port;

            msgRequest.AddAttribute(mattr);

            SocketServer.UDPSocketClient client = new SocketServer.UDPSocketClient(LocalEndpoint);
            client.OnReceivePacket += new SocketServer.UDPSocketClient.DelegateReceivePacket(client_OnReceivePacket3);
            #if !WINDOWS_PHONE
            client.StartReceiving(true);
            #else
            client.StartReceiving();
            #endif

            byte [] bMessage = msgRequest.Bytes;
            client.SendUDP(bMessage, bMessage.Length, epStun);
        }
Exemplo n.º 2
0
        public void PerformRequest()
        {
            ResponseMessage = null;
            WaitHandle.Reset();
            EndPoint epStun = SocketServer.ConnectMgr.GetIPEndpoint(StunServer, StunPort);

            STUNMessage msgRequest = new STUNMessage();

            msgRequest.Method = StunMethod.Binding;
            msgRequest.Class  = StunClass.Request;


            MappedAddressAttribute mattr = new MappedAddressAttribute();

            mattr.IPAddress = LocalEndpoint.Address;
            mattr.Port      = (ushort)LocalEndpoint.Port;


            msgRequest.AddAttribute(mattr);

            SocketServer.UDPSocketClient client = new SocketServer.UDPSocketClient(LocalEndpoint);
            client.OnReceivePacket += new SocketServer.UDPSocketClient.DelegateReceivePacket(client_OnReceivePacket3);
#if !WINDOWS_PHONE
            client.StartReceiving(true);
#else
            client.StartReceiving();
#endif

            byte [] bMessage = msgRequest.Bytes;
            client.SendUDP(bMessage, bMessage.Length, epStun);
        }
Exemplo n.º 3
0
        public virtual void Stop()
        {
            if (IsActive == false)
            {
                return;
            }

            IsActive = false;
            IsBound  = false;
            UDPClient.StopReceiving();
            UDPClient.OnReceiveMessage -= new SocketServer.UDPSocketClient.DelegateReceivePacket(RTPUDPClient_OnReceiveMessage);
            UDPClient = null;
        }
Exemplo n.º 4
0
        public void Bind(IPEndPoint localEp)
        {
            if (IsBound == false)
            {
                LocalEndpoint = localEp;
                UDPClient     = new SocketServer.UDPSocketClient(LocalEndpoint);
                UDPClient.Bind();

#if !WINDOWS_PHONE
                LocalEndpoint = UDPClient.s.LocalEndPoint as IPEndPoint;
#else
#endif
                IsBound = true;
                UDPClient.OnReceiveMessage += new SocketServer.UDPSocketClient.DelegateReceivePacket(RTPUDPClient_OnReceiveMessage);
                UDPClient.StartReceiving();
            }
        }