private void SendBytesForUdp(Udp_Sender udp_Server, byte[] data, string ip)
        {
            byte[] sendData = new byte[Defines.lengthDgram];
            int    pointer  = 0;

            udp_Server.Connect(ip, Defines.startPortsUsers);
            if (udp_Server.Connected)
            {
                try
                {
                    sendData[Defines.lengthDgram - 5] = this.ip[0];
                    sendData[Defines.lengthDgram - 4] = this.ip[1];
                    sendData[Defines.lengthDgram - 3] = this.ip[2];
                    sendData[Defines.lengthDgram - 2] = this.ip[3];
                    if (data.Length <= (Defines.lengthDgram - 5))
                    {
                        data.CopyTo(sendData, 0);
                        sendData[Defines.lengthDgram - 1] = 1;
                        thisEventThread.WaitOne();
                        udp_Server.SendTo(sendData);
                        nextEventThread.Set();
                    }
                    else
                    {
                        while (pointer < data.Length)
                        {
                            if (pointer == 0)
                            {
                                sendData[Defines.lengthDgram - 1] = 1;
                            }
                            else
                            {
                                sendData[Defines.lengthDgram - 1] = 0;
                            }
                            for (int index = 0; index < Defines.lengthDgram - 5; index++)
                            {
                                if (pointer < data.Length)
                                {
                                    sendData[index] = data[pointer];
                                    pointer++;
                                }
                                else
                                {
                                    break;
                                }
                            }
                            thisEventThread.WaitOne();
                            udp_Server.SendTo(sendData);
                            nextEventThread.Set();
                        }
                    }
                }
                catch (Exception error)
                {
                }
            }
        }
Beispiel #2
0
        public void SendRequest(FlagsRequest numberRequest, string ip)
        {
            string ipAddress = GetHostIP();

            byte[] request = new byte[Defines.RequestSize];
            request[0] = (byte)GetNumberOfIp(ipAddress, 1);
            request[1] = (byte)GetNumberOfIp(ipAddress, 2);
            request[2] = (byte)GetNumberOfIp(ipAddress, 3);
            request[3] = (byte)GetNumberOfIp(ipAddress, 4);
            request[4] = (byte)numberRequest;
            byte[] nameInBytes = TranslateNameInBytes(myUserName, Defines.maxLenghtName);
            for (int i = Defines.startPositionNameInRequest, j = 0; (i < Defines.RequestSize) && (j < nameInBytes.Length); i++, j++)
            {
                request[i] = nameInBytes[j];
            }
            RequestSender.Connect(ip, Defines.portGetRequests);
            if (RequestSender.Connected)
            {
                RequestSender.SendTo(request);
            }
        }