Нет соединения клиента и сервера в простейшем приложении-примере с сайта - C#

Узнай цену своей работы

Формулировка задачи:

Привет! В веб программировании полный ноль, спросить не у кого,теорию читал, все понятно, но не работает..знающие люди - помогите =) Для изучения с известного сайта professorweb скачал пример клиента и сервера, на двух машинах, подключенных к одному роутеру запустил их, но нет коннекта - клиент пишет что сервер отверг подключение или что то вроде этого. Порт был указан из примера - 11000, я отсканировал порты и выбрал свободный 57979, изменил данные, но эффект тот же. Если можно, подробнее объясните почему нет соединения, ведь ip программе предоставляет класс Dns, и они, по идее должны совпадать, а свободный порт я указал и там и там. Вот ссылка на пример, ну и заспойлю их тут сервер
Листинг программы
  1. namespace SocketServer
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. // Устанавливаем для сокета локальную конечную точку
  8. IPHostEntry ipHost = Dns.GetHostEntry("localhost");
  9. IPAddress ipAddr = ipHost.AddressList[0];
  10. IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);
  11. // Создаем сокет Tcp/Ip
  12. Socket sListener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
  13. // Назначаем сокет локальной конечной точке и слушаем входящие сокеты
  14. try
  15. {
  16. sListener.Bind(ipEndPoint);
  17. sListener.Listen(10);
  18. // Начинаем слушать соединения
  19. while (true)
  20. {
  21. Console.WriteLine("Ожидаем соединение через порт {0}", ipEndPoint);
  22. // Программа приостанавливается, ожидая входящее соединение
  23. Socket handler = sListener.Accept();
  24. string data = null;
  25. // Мы дождались клиента, пытающегося с нами соединиться
  26. byte[] bytes = new byte[1024];
  27. int bytesRec = handler.Receive(bytes);
  28. data += Encoding.UTF8.GetString(bytes, 0, bytesRec);
  29. // Показываем данные на консоли
  30. Console.Write("Полученный текст: " + data + "\n\n");
  31. // Отправляем ответ клиенту\
  32. string reply = "Спасибо за запрос в " + data.Length.ToString()
  33. + " символов";
  34. byte[] msg = Encoding.UTF8.GetBytes(reply);
  35. handler.Send(msg);
  36. if (data.IndexOf("<TheEnd>") > -1)
  37. {
  38. Console.WriteLine("Сервер завершил соединение с клиентом.");
  39. break;
  40. }
  41. handler.Shutdown(SocketShutdown.Both);
  42. handler.Close();
  43. }
  44. }
  45. catch (Exception ex)
  46. {
  47. Console.WriteLine(ex.ToString());
  48. }
  49. finally
  50. {
  51. Console.ReadLine();
  52. }
  53. }
  54. }
  55. }
и клиент
Листинг программы
  1. namespace SocketClient
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. try
  8. {
  9. SendMessageFromSocket(11000);
  10. }
  11. catch (Exception ex)
  12. {
  13. Console.WriteLine(ex.ToString());
  14. }
  15. finally
  16. {
  17. Console.ReadLine();
  18. }
  19. }
  20. static void SendMessageFromSocket(int port)
  21. {
  22. // Буфер для входящих данных
  23. byte[] bytes = new byte[1024];
  24. // Соединяемся с удаленным устройством
  25. // Устанавливаем удаленную точку для сокета
  26. IPHostEntry ipHost = Dns.GetHostEntry("localhost");
  27. IPAddress ipAddr = ipHost.AddressList[0];
  28. IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port);
  29. Socket sender = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
  30. // Соединяем сокет с удаленной точкой
  31. sender.Connect(ipEndPoint);
  32. Console.Write("Введите сообщение: ");
  33. string message = Console.ReadLine();
  34. Console.WriteLine("Сокет соединяется с {0} ", sender.RemoteEndPoint.ToString());
  35. byte[] msg = Encoding.UTF8.GetBytes(message);
  36. // Отправляем данные через сокет
  37. int bytesSent = sender.Send(msg);
  38. // Получаем ответ от сервера
  39. int bytesRec = sender.Receive(bytes);
  40. Console.WriteLine("\nОтвет от сервера: {0}\n\n", Encoding.UTF8.GetString(bytes, 0, bytesRec));
  41. // Используем рекурсию для неоднократного вызова SendMessageFromSocket()
  42. if (message.IndexOf("<TheEnd>") == -1)
  43. SendMessageFromSocket(port);
  44. // Освобождаем сокет
  45. sender.Shutdown(SocketShutdown.Both);
  46. sender.Close();
  47. }
  48. }
  49. }

Решение задачи: «Нет соединения клиента и сервера в простейшем приложении-примере с сайта»

textual
Листинг программы
  1.  IPHostEntry ipadd = Dns.GetHostEntry(Dns.GetHostName());
  2.             IPAddress ipAddr = ipadd.AddressList[6];
  3.             IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы