示例#1
0
        public void wait_for_data()
        {
            try
            {
                if (callback_ == null)
                {
                    callback_ = new AsyncCallback(packet_received);
                }
                SocketPacket socket_packet = new SocketPacket();
                socket_packet.socket_ = socket_;

                async_result_ = socket_.BeginReceive(socket_packet.data_buffer_,
                                                     0,
                                                     socket_packet.data_buffer_.Length,
                                                     SocketFlags.None,
                                                     callback_,
                                                     socket_packet);
            }
            catch (ObjectDisposedException)
            {
                System.Diagnostics.Debugger.Log(0, "1", "\nOnDataReceived: Socket has been closed\n");
            }
            catch (SocketException se)
            {
                MessageBox.Show(se.Message);
            }
        }
示例#2
0
        public void wait_for_data()
        {
            try
            {
                if (callback_ == null)
                    callback_ = new AsyncCallback(packet_received);
                SocketPacket socket_packet = new SocketPacket();
                socket_packet.socket_ = socket_;

                async_result_ = socket_.BeginReceive(socket_packet.data_buffer_,
                    0,
                    socket_packet.data_buffer_.Length,
                    SocketFlags.None,
                    callback_,
                    socket_packet);
            }
            catch (ObjectDisposedException)
            {
                System.Diagnostics.Debugger.Log(0, "1", "\nOnDataReceived: Socket has been closed\n");
            }
            catch (SocketException se)
            {
                MessageBox.Show(se.Message);
            }
        }
示例#3
0
        private void packet_received(IAsyncResult ar)
        {
            try
            {
                int          recv_size;
                SocketPacket socket_packet = (SocketPacket)ar.AsyncState;
                recv_size = socket_packet.socket_.EndReceive(ar);

                if (recv_size == 0)
                {
                    output_.output_debug("-client: connection closed.");
                    socket_packet.socket_.Close();
                    return;
                }

                output_.output_debug("-server: data packet[" + recv_size + "]: ");
                output_.output_debug(socket_packet.data_buffer_, recv_size);
                output_.output_debug("\n-server: packet end.\n");

                packet_forge_.process_packet(socket_packet.data_buffer_, recv_size, socket_packet.socket_);

                wait_for_data();
            }
            catch (SocketException se)
            {
                MessageBox.Show(se.Message);
            }
            catch (ObjectDisposedException)
            {
                System.Diagnostics.Debugger.Log(0, "1", "\nOnDataReceived: Socket has been closed\n");
            }
        }