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) { } } }
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); } }