コード例 #1
0
ファイル: AsyncUdpServer.cs プロジェクト: cc29sf3/FileMatch
        public void FinalReceiveCallback(IAsyncResult iar)
        {
            UdpState udpState = iar.AsyncState as UdpState;

            if (iar.IsCompleted)
            {
                Console.WriteLine("FinalReceiveCallback:" + Thread.CurrentThread.ManagedThreadId);
                Byte[] receiveBytes = udpState.udpClient.EndReceive(iar, ref udpReceiveState.ipEndPoint);
                FinalBackString = Encoding.UTF8.GetString(receiveBytes);
                receiveDone.Set();
            }
        }
コード例 #2
0
ファイル: AsyncUdpServer.cs プロジェクト: cc29sf3/FileMatch
        // 接收回调函数
        public void ReceiveCallback(IAsyncResult iar)
        {
            UdpState udpState = iar.AsyncState as UdpState;

            if (iar.IsCompleted)
            {
                Console.WriteLine("ReceiveCallback:" + Thread.CurrentThread.ManagedThreadId);
                Byte[] receiveBytes  = udpState.udpClient.EndReceive(iar, ref udpReceiveState.ipEndPoint);
                string receiveString = Encoding.UTF8.GetString(receiveBytes);
                if (receiveString == "Y")
                {
                    udpReceive.BeginReceive(new AsyncCallback(FinalReceiveCallback), udpReceiveState);
                }
                else
                {
                    FinalBackString = "N";
                    receiveDone.Set();
                }
            }
        }
コード例 #3
0
ファイル: AsyncUdpServer.cs プロジェクト: cc29sf3/FileMatch
        public AsyncUdpClient()
        {
            var name = Dns.GetHostName();
            var ssfs = Dns.GetHostAddresses(name);

            // 本机节点
            localEP = new IPEndPoint(Dns.GetHostAddresses(Dns.GetHostName())[1], listenPort);
            // 远程节点
            remoteEP = new IPEndPoint(Dns.GetHostAddresses(Dns.GetHostName())[1], remotePort);
            // 实例化
            udpReceive = new UdpClient(localEP);
            udpSend    = new UdpClient(listenPort);

            // 分别实例化udpSendState、udpReceiveState
            //udpSendState = new UdpState();
            //udpSendState.ipEndPoint = remoteEP;
            //udpSendState.udpClient = udpSend;

            udpReceiveState            = new UdpState();
            udpReceiveState.ipEndPoint = remoteEP;
            udpReceiveState.udpClient  = udpReceive;
        }