public static string SendRequst(string reciverIPstr, RequestTipe request = RequestTipe.GetDirectoryFiles, string requestMess = "ans") { string Response = ""; try { IPAddress recieverIP = IPAddress.Parse(reciverIPstr); Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint recieverEP = new IPEndPoint(recieverIP, port); // точка получателя sender.Connect(recieverEP); var requestM = GetRequestString(request, requestMess); // формирование сообщения запроса byte[] message = Encoding.Unicode.GetBytes(requestM); // отпрака запроса sender.Send(message); // отпрака сообщения на соединенный сокет Console.WriteLine($"запрос был отправлен на - {recieverEP.Address}"); Console.WriteLine($"содержание запроса - {requestM}"); //Request.DoAfterSend(request); // действие которое необходимо сделать после отпраки запроса // получение ответа от получателя byte[] data = new byte[256]; // буфер для ответа StringBuilder ansBuilder = new StringBuilder(); int bytes = 0; // количество полученных байт do { bytes = sender.Receive(data); ansBuilder.Append(Encoding.Unicode.GetString(data, 0, bytes)); Thread.Sleep(100); }while (sender.Available > 0); var response = ansBuilder.ToString(); if (response.IndexOf("Answer") != -1) { Console.WriteLine("request was veryfied"); Console.WriteLine("ответ получателя - " + response); } if (response.IndexOf($"{RequestError.DirectoryNotExist}") != -1) { return(RequestError.DirectoryNotExist.ToString()); //throw new Exception("дериктория не найдена"); } sender.Shutdown(SocketShutdown.Both); sender.Close(); Response = response; } catch (Exception e) { Console.WriteLine(e.Message); } return(Response); }
public void SendRequest(RequestTipe request, string messege) { }
private static string GetRequestString(RequestTipe request, string requestMess) { string requestString = $"Request|" + ((int)request).ToString() + '|' + requestMess; return(requestString); }
public static void DoAfterSend(RequestTipe request) { }