private void ConnectCallback(IAsyncResult ar)
 {
     try
     {
         // Retrieve the socket from the state object.
         Socket client = (Socket)ar.AsyncState;
         // Complete the connection.
         client.EndConnect(ar);
         AppMainForm.getInstance().DebugMessage("Connected to " + client.RemoteEndPoint.ToString());
         Send();
     }
     catch (Exception exc)
     {
         AppMainForm.getInstance().DebugMessage("Client.ConnectCallBack(): " + exc.Message);
     }
 }
 public static void ReceiveCallback(IAsyncResult ar)
 {
     try
     {
         UdpClient  client        = ((UdpState)(ar.AsyncState)).client;
         IPEndPoint endPoint      = ((UdpState)(ar.AsyncState)).endPoint;
         Byte[]     receiveBytes  = client.EndReceive(ar, ref endPoint);
         string     receiveString = Encoding.ASCII.GetString(receiveBytes);
         AppMainForm.getInstance().msg("RX: <" + endPoint.Address + "> " + receiveString);
         client.Close();
     }
     catch (Exception exc)
     {
         AppMainForm.getInstance().DebugMessage("UDPClient.ReceiveCallback(): " + exc.ToString());
     }
 }
        //Stop server
        public void Stop()
        {
            //Exit listening loop
            this.running = false;

            try
            {
                //Disconnect every client in list "client". Lambda \(o.o)/
                this.clients.ForEach(client => client.Close());

                //Clear clients.
                this.clients.Clear();
            }
            catch (Exception exc)
            {
                AppMainForm.getInstance().DebugMessage("Server.Stop(): " + exc.Message);
            }
        }
 public void SendMessage(String message)
 {
     try
     {
         client = new UdpClient();
         client.EnableBroadcast = true;
         IPEndPoint serverEp    = new IPEndPoint(IPAddress.Any, 0);
         UdpState   state       = new UdpState(client, serverEp);
         byte[]     RequestData = Encoding.ASCII.GetBytes(message);
         client.Send(RequestData, RequestData.Length, remoteEP);
         AppMainForm.getInstance().msg("TX: " + message);
         client.BeginReceive(new AsyncCallback(ReceiveCallback), state);
     }
     catch (Exception exc)
     {
         AppMainForm.getInstance().DebugMessage("UDPClient.SendMessage(): " + exc.ToString());
     }
 }
        private void SendCallback(IAsyncResult ar)
        {
            try
            {
                // Retrieve the socket from the state object.
                Socket client = (Socket)ar.AsyncState;
                // Complete sending the data to the remote device.
                int bytesSent = client.EndSend(ar);
                //if (bytesSent == message.Length)
                AppMainForm.getInstance().msg("TX: " + message);
                AppMainForm.getInstance().DebugMessage("Disconnecting from " + client.RemoteEndPoint.ToString());

                client.Shutdown(SocketShutdown.Both);
                client.Close();
            }
            catch (Exception exc)
            {
                AppMainForm.getInstance().DebugMessage("Client.SendCallBack(): " + exc.Message);
            }
        }
        //Closes the connection
        public void Close()
        {
            //Stop listening
            listen = false;

            //Inform user
            AppMainForm.getInstance().UpdateClientList(this.cip, false);

            try
            {
                //Close streamwriter FIRST
                writer.Close();

                //Then close connection
                client.Close();

                AppMainForm.getInstance().DebugMessage("Server.Client.Close(): Closed the connection!");
            }
            catch (Exception exc)
            {
                AppMainForm.getInstance().DebugMessage("Server.Client.Close(): " + exc.Message);
            }
        }
        //Starts the server.
        public void Run()
        {
            if (this.running)
            {
                return;
            }
            //Run in new thread. Otherwise the whole application would be blocked
            new Thread(() =>
            {
                //Init TcpListener
                TcpListener listener = null;

                try
                {
                    listener = new TcpListener(this.ip, this.port);
                    listener.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
                }
                catch (Exception exc) {
                    AppMainForm.getInstance().DebugMessage("Server.TcpListener(): " + exc.Message);
                    return;
                }

                this.running = true;

                try
                {
                    //Start listener
                    listener.Start();
                }
                catch (Exception exc) {
                    AppMainForm.getInstance().DebugMessage("Server.listener.Start(): " + exc.Message);
                    this.running = false;
                }
                //While the server should run
                while (running)
                {
                    try
                    {
                        if (listener.Pending())   //Check if someone wants to connect
                        //Client connection incoming. Accept, setup data incoming event and add to client list
                        {
                            Client client = new Client(listener.AcceptTcpClient(), this.clientCount);
                            client.internalGotDataFromCTC += GotDataFromClient;

                            clients.Add(client); //Add to list
                            this.clientCount++;  //Increase client count
                        }
                        else
                        {
                            //No new connections. Sleep a little to prevent CPU from going to 100%
                            Thread.Sleep(100);
                        }
                    }
                    catch (Exception exc)
                    {
                        AppMainForm.getInstance().DebugMessage("Server.listener.Pending(): " + exc.Message);
                        this.running = false;
                    }
                }

                //When we land here running were set to false or another problem occured. Stop server and disconnect all.
                Stop();
            }).Start(); //Start thread. Lambda \(o.o)/
        }
Esempio n. 8
0
        private void btnNext_Click(object sender, EventArgs e)
        {
            try
            {
                btnNext.Enabled = false;
                switch (tabControl1.SelectedIndex)
                {
                case 0:
                    if (balancer == 1)
                    {
                        AppMainForm.getInstance().SendMessage(Instructions.MB_BALANCER1_CALIBRATE);
                    }
                    else
                    {
                        AppMainForm.getInstance().SendMessage(Instructions.MB_BALANCER2_CALIBRATE);
                    }
                    lblPage1.Text = "Devrenin Cevabı Bekleniyor...(5 sn.)";
                    break;

                case 1:
                    v0 = double.Parse(mTBPage2.Text);
                    if (balancer == 1)
                    {
                        AppMainForm.getInstance().SendMessage(Instructions.MB_BALANCER1_PRINT_ONCE);
                    }
                    else
                    {
                        AppMainForm.getInstance().SendMessage(Instructions.MB_BALANCER2_PRINT_ONCE);
                    }
                    lblPage2.Text = "Devrenin Cevabı Bekleniyor...(5 sn.)";
                    break;

                case 2:
                    v1 = double.Parse(mTBPage3.Text);
                    if (balancer == 1)
                    {
                        AppMainForm.getInstance().SendMessage(Instructions.MB_BALANCER1_PRINT_ONCE);
                    }
                    else
                    {
                        AppMainForm.getInstance().SendMessage(Instructions.MB_BALANCER2_PRINT_ONCE);
                    }
                    lblPage2.Text = "Devrenin Cevabı Bekleniyor...(5 sn.)";
                    break;

                case 3:
                    string gval = gainRep.ToString();
                    if (balancer == 1)
                    {
                        AppMainForm.getInstance().SendMessage(Instructions.MB_BALANCER1_SET_GAIN + gval);
                    }
                    else
                    {
                        AppMainForm.getInstance().SendMessage(Instructions.MB_BALANCER2_SET_GAIN + gval);
                    }
                    break;

                default:
                    break;
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, "Hata", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
Esempio n. 9
0
 private void CalibrationWizard_FormClosing(object sender, FormClosingEventArgs e)
 {
     AppMainForm.getInstance().UnSetCalibrationFormStatus();
 }