Aegis.Network.UDPClient.Connect C# (CSharp) Method

Connect() public method

public Connect ( string ipAddress, int portNo ) : void
ipAddress string
portNo int
return void
        public void Connect(string ipAddress, int portNo)
        {
            lock (this)
            {
                if (_socket != null)
                    throw new AegisException(AegisResult.ActivatedSession, "This session has already been activated.");

                Array.Clear(_receivedBuffer, 0, _receivedBuffer.Length);

                _endPoint = new IPEndPoint(IPAddress.Parse(ipAddress), portNo);
                _socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                _socket.Connect(_endPoint);
            }

            WaitForReceive();
        }

Usage Example

Beispiel #1
0
        private void Start()
        {
            _packetDispatcher = new MethodSelector<Packet>(this, (ref Packet source, out string key) =>
            {
                key = source.PacketId.ToString();
                source.SkipHeader();
            });

            _udp = new UDPClient();
            _udp.EventRead += NetworkEvent_Receive;
            _udp.EventClose += NetworkEvent_Close;
            _udp.Connect("127.0.0.1", 10201);

            _counter = new IntervalCounter(1000);
            _counter.Start();
            (new IntervalTimer(1000, () =>
            {
                DateTime now = DateTime.Now;
                Console.WriteLine(string.Format("[{0}/{1} {2}:{3}:{4}] recv: {5}",
                                        DateTime.Now.Month, DateTime.Now.Day,
                                        DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second,
                                        _counter.Value));
            })).Start();

            {
                Packet reqPacket = new Packet(Protocol.Echo_Req);
                Send(reqPacket);
            }
        }