コード例 #1
0
        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);
        }
コード例 #2
0
 public void SendRequest(RequestTipe request, string messege)
 {
 }
コード例 #3
0
        private static string GetRequestString(RequestTipe request, string requestMess)
        {
            string requestString = $"Request|" + ((int)request).ToString() + '|' + requestMess;

            return(requestString);
        }
コード例 #4
0
 public static void DoAfterSend(RequestTipe request)
 {
 }