Сокеты (socket) и клиент-серверное взаимодействие по протоколам TCP и UDP в C# - Учим Шарп #18

  Рет қаралды 85,779

CODE BLOG

CODE BLOG

5 жыл бұрын

Сокеты (socket) и клиент-серверное взаимодействие по протоколам TCP и UDP в языке программирования C#
На этом занятии мы познакомимся с основными принципами работы клиент-серверных приложений, научимся передавать данные по протоколам tcp и udp, узнаем как они работают и чем отличаются. Изучим что такое web сокеты (socket) и научимся их создавать на языке программирования C#.
-----------
ПОДПИШИСЬ на соцсети:
🔴 TELEGRAM: bit.ly/tg_codeblog
🔴 VK: bit.ly/vk_codeblog
🔴 INSTAGRAM: bit.ly/inst_codeblog
🔴 Яндекс Дзен: bit.ly/zen_codeblog
🔴 FACEBOOK: bit.ly/fb_codeblog
🔴 TWITTER: bit.ly/twit_codeblog
🔴 Мой блог: bit.ly/site_codeblog
-----------
ПОДДЕРЖИ развитие CODE BLOG:
💲 Донат: bit.ly/donate_codeblog
💲 Спонсорство: bit.ly/patreon_codeblog
-----------
СМОТРИ мои обучающие курсы:
👉 УЧИМ ШАРП: bit.ly/cs_codeblog
👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #1: bit.ly/fit_codeblog
👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #2: bit.ly/crm_codeblog
👉 СТРУКТУРЫ ДАННЫХ: bit.ly/ds_codeblog
👉 АЛГОРИТМЫ СОРТИРОВКИ: bit.ly/sort_codeblog
👉 ОТВЕТЫ НА ВОПРОСЫ: bit.ly/faq_codeblog
👉 IT ПЕРЕОЗВУЧКА: bit.ly/resound_codeblog
👉 НЕЙРОННАЯ СЕТЬ: bit.ly/ai_codeblog
👉 ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ: bit.ly/pattern_codeblog
👉 CODE REVIEW: bit.ly/review_codeblog
👉 CLR via C#: bit.ly/clr_codeblog
-----------
Кстати, меня зовут Шванов Вадим, и я профессиональный .NET разработчик с 2011 года и автор этого канала CODE BLOG. Я рассказываю про IT технологии и веду абсолютно бесплатный курс по языку C# с нуля. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP .NET, .NET Core, ASP.NET MVC, Unity, WPF, структуры данных и алгоритмы, с#, dotnet, паттерны проектирования, информатика, csharp, программное обеспечение и многое другое. Для меня важно не только показать практическое применение языка си шарп, но и объяснить основную идею и базовые понятия Computer Science. В качестве основного инструмента разработки используется Visual Studio c# и проекты на Visual c#. Если вам нравятся такие каналы как хауди хо, айти борода, Soer или ExtremeCode, то здесь вам точно понравится.
-----------
#codeblog #программирование #csharp #ityoutubersru #программист #разработка

Пікірлер: 147
@CODEBLOG
@CODEBLOG 5 жыл бұрын
На этом занятии мы познакомимся с основными принципами работы клиент-серверных приложений, научимся передавать данные по протоколам tcp и udp, узнаем как они работают и чем отличаются. Изучим что такое web сокеты (socket) и научимся их создавать на языке программирования C#.
@mathewbal3990
@mathewbal3990 4 жыл бұрын
А как принять на сервер файл ?
@FloatingGames
@FloatingGames 11 ай бұрын
а как сделать так чтобы сервер был доступен во всей сети интернет потому что у меня не получается подключиться к нему через мобильные данные только по локальному вай фаю, месяц не могу решить эту проблему
@mortarion_11
@mortarion_11 5 жыл бұрын
Я расскажу вам анекдот про UDP, но, боюсь, он до вас не дойдёт
@CODEBLOG
@CODEBLOG 5 жыл бұрын
а еще могу про TCP рассказать, а если он до вас не дойдет, то я повторю ))))
@va1r347
@va1r347 3 жыл бұрын
а я могу расказать анекдот про машьіну времени , но знаю что вам не понравится!
@montykay6003
@montykay6003 5 жыл бұрын
Спасибо за ваши уроки, как надоели все эти: "Выучить c# за час", и подобный "информативный" контент по программированию, а в ваших видео тема раскрывается довольно хорошо и сами темы важные для основ обучения
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Очень приятно, рад, что нравится )))
@gilyanachumashkayeva8838
@gilyanachumashkayeva8838 4 жыл бұрын
Ох , ничего себе , неужели я нашла нормальный контент + нормальным объяснением ( русским языком 😍, а не компьютерным и слишком заумным) для новичков кто только изучает это - НАХОДКА, спасибо! Попытаюсь написать сегодня программу
@user-lo1lh2nv6p
@user-lo1lh2nv6p 4 жыл бұрын
@@gilyanachumashkayeva8838 Ну как получилось???))
@dmagames6727
@dmagames6727 4 жыл бұрын
ещё можешь посмотреть это: kzbin.info/www/bejne/onyaXoWboaqHbMk
@pvd4170
@pvd4170 2 жыл бұрын
Спасибо большое за ваши уроки!) Очень доступно объясняете и без воды!)
@atler9865
@atler9865 4 жыл бұрын
это просто капец какая интересная тема. Просто эйфорию чуствую когда всё получается. Властелин сети.)))
@aleksandercross5936
@aleksandercross5936 4 жыл бұрын
Спасибо за пример написания кода. Вы мне очень помогли разобраться в сокетах
@it-tb8od
@it-tb8od 6 ай бұрын
Кучу видео пересмотрел про клиент-сервер на c#. Это самое понятное видео, причем как назло данный канал не рекомендовал ютуб раньше, спасибо за уроки, надеюсь канал оживет.
@kirillshvetsov7745
@kirillshvetsov7745 3 жыл бұрын
Спасибо за урок!
@roman6572
@roman6572 2 жыл бұрын
спасибо за урок)
@mkrugl
@mkrugl 5 жыл бұрын
Отличный стрим! Благодарю. В универе задали написать клиент-серверное приложение, поэтому обратился к вашему видео!
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Это хорошо, что видео помогают в учебе )
@deverloperfantom1372
@deverloperfantom1372 5 жыл бұрын
что у тебя за универ такой что просит такое написать)
@mkrugl
@mkrugl 5 жыл бұрын
Deverloper Fantom университет Дубна
@deverloperfantom1372
@deverloperfantom1372 5 жыл бұрын
@@mkrugl запиарь универ как называется
@mkrugl
@mkrugl 5 жыл бұрын
Deverloper Fantom хороший продукт в рекламе не нуждается в 😬🤠
@gijduvon6379
@gijduvon6379 3 жыл бұрын
Блин, кому сейчас нужны уроки по большому фреймворку! Надо было делать сразу на core
@Eltar007
@Eltar007 3 жыл бұрын
привет! Спасибо большое! Хороший материал. Пришлось, правда, поставить на 2х скорость, но все годно. Подскажите как вместо того, чтобы отправить данные на ip адрес 127.0.0.1, порт NNNN, отправить их на хост wss://example.com /ws?
@fenraz666
@fenraz666 4 жыл бұрын
Вадим, вы упомянули в видео что желательно бы иметь коммерческий опыт и для этого можно поработать в гос.компании. Это имелось в виду именно опыт программирования? Или вообще какой-либо опыт работы. Просто хочу войти в айти, а опыт работы только инженером(
@igorcoolman
@igorcoolman 5 жыл бұрын
я еще 16 не досмотрел, вот вы лепите )
@CODEBLOG
@CODEBLOG 5 жыл бұрын
2 раза в неделю ))
@inessa6958
@inessa6958 4 жыл бұрын
Здравствуйте, подскажите, пожалуйста, что нужно передать в datagram серверу, чтобы он вернул клиенту список мак-адресов? Спасибо
@lonernagibator5543
@lonernagibator5543 4 жыл бұрын
А если на разных Вижуал студио (1я на ПК, вторая на ноуте) написать клиент и сервер соответственно, то подскажите как поправить код адресов чтобы сервер смог принять данные. У меня роутер. (а то неинтересно проводить эксперимент на одном компе).
@minoddein7205
@minoddein7205 4 жыл бұрын
Запихнул обработку и отправку сообщения в асинхронные методы у клиента и у сервера,стало хоть чуть-чуть походить на обычный чат,а не на рацию.Вопрос,как сделать чат многопользовательским на tcp,чтобы не было этих очередей?Вроде как,на udp это сделать гораздо проще,но меня интересует возможность на tcp.
@random6959
@random6959 4 жыл бұрын
А можно ли при работе с udp использовать udpSocket.accept() ?
@abdusamadjuraev2615
@abdusamadjuraev2615 4 жыл бұрын
Вадим,что ты изучал после це решотка?)
@AlexV-zg6co
@AlexV-zg6co 4 жыл бұрын
Благодарим тебя, Вадим
@pssp4450
@pssp4450 4 жыл бұрын
Можете рассказать как работает (50:10) data.Append? Я понял конкретно то что идёт перекодирование от byte к string но почему внутри GetString находится буфер, 0 и size? если был бы только size было бы понятно то что идёт перекодирование size от byte к строку но что там делают buffer и 0? В инете как-то не удаётся найти инфу по этому поводу, а сайт майкрософт... ну, не то что можно понять новичку.
@The_Mavrik
@The_Mavrik 4 жыл бұрын
Хороший видос, но почему не 1080p?
@maniakm897
@maniakm897 4 жыл бұрын
Почему то даное приложение не работает с портом 8080. Но если порт поменять на другой - то работает нормально.
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Значит порт просто занят другим приложением или заблокирован в брандмауэре
@tandinio
@tandinio 5 жыл бұрын
Вадим, во-первых, большое спасибо за видео, прям очень понравилось. Во-вторых: 1) У меня exe-шник файла почему-то не создаётся. Во время сборки все ок, но все равно нет файла(приходится с 2х vs заходить). Можешь подсказать, как это исправить? 2) Я твой пример с 1 челом и сервером поместил в цикл и все круто работает, но я хотел создать что-то наподобие чата. Но когда 2 чел начинает писать, то прога виснет и ВСЁ. Я полагаю, что это из-за одиннаковых параметров 2х клиентов(я же одну и туже прогу запускаю, просто в 3х вижуалках) Можешь сказать, как 2го клиента подключить?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Так-с, смотри. Почему не создается exe я вообще не понял. Очень странно. Для того, чтобы это был чат для нескольких людей нужна немного другая архитектура. на храбре была статья, можешь почитать там habr.com/ru/post/252021/
@bloodborn9632
@bloodborn9632 3 жыл бұрын
Всем привет кто подскажет где можно глянуть примеры написания rest и soap сервисов на с # хотябы самы простые примеры ?
@salir-6338
@salir-6338 2 жыл бұрын
может ли клиент подключиться к серверу на разных компьютерах, имея только айпи серверного компа?
@MagdakEH
@MagdakEH 5 жыл бұрын
1:48:20 У меня почему-то позволяет запускать несколько экземпляров клиента) Все работают при этом, экспешн не вылетает Писал код синхронно с видосом
@user-it5ne4ft1l
@user-it5ne4ft1l 3 жыл бұрын
можно попробовать в конфигурации release "запуск без отладки"
@crazist3325
@crazist3325 Жыл бұрын
Про игры скорее всего это веб сокет а он на тсп, но суть в риалтайм соединении(постоянном)
@pavelchagovskiy6447
@pavelchagovskiy6447 4 жыл бұрын
Собирал по Вашему видело. Огромное спасибо. Даже удалось зациклить отправку клиента, чтобы можно было отправлять с клиента сообщение одно за одним. А как можно создать подобие ICQ передачи? Чтобы в одном приложении сразу сочетались сервер и клиент и у двух приятелей было по одному такому приложению? Как это правильно разработать? Заранее спасибо.
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Посмотри эту статейку habr.com/ru/post/252021/
@user-vg6gu8hc6w
@user-vg6gu8hc6w 4 жыл бұрын
@@pavelchagovskiy6447 НУ да это жизнь а жизнь как мы знаем ...
@q2zoff832
@q2zoff832 4 жыл бұрын
@@pavelchagovskiy6447 В ядрах пишешь while (true ) { условие } а в запуске имя ядра = новое ядро (метод ядра) и всё
@andreyartemov5410
@andreyartemov5410 4 жыл бұрын
чтобы через глобальную сеть подключиться, нужно либо статический ip либо хост?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Да, нужен будет белый IP или специальные сервисы. По серому тоже вроде как можно, но это не удобно
@andreyartemov5410
@andreyartemov5410 4 жыл бұрын
@@CODEBLOG а не подскажите, где бы я мог найти информацию как по серому коннектиться?
@user-pt6bk3bo4p
@user-pt6bk3bo4p 3 жыл бұрын
Andrey Artemov ну шо, разобрался?
@shmyaks420
@shmyaks420 2 жыл бұрын
а почему при создании udp подключения мы передавали аргумент по ссылке, а не по значению? 1:19:25
@isagidaiki
@isagidaiki 4 ай бұрын
понял почему?
@uoidqwt
@uoidqwt 4 жыл бұрын
Как передавать C# обьекты по сети? У меня не получается привести к тому же типу после десеарелизации, выдает исключение
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Значит что-то не так реализовано. должно работать
@user-tn3bw1wg8w
@user-tn3bw1wg8w 4 жыл бұрын
Доброго времени суток) спасибо за данное видео 👍 подскажите пожалуйста, как реализовать отправку сообщений от клиента, к серверу и обратно, по Wi-Fi? Предположим есть два ноутбука один из них сервер, а другой клиент. На языке C#
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Привет. А смысл такой же, не важно, будет это по wi-fi, локальную сеть или глобальный интернет, главное знать ip адрес и по нему стучаться.
@user-tn3bw1wg8w
@user-tn3bw1wg8w 4 жыл бұрын
@@CODEBLOG понял) спасибо за внимание попробую
@user-tn3bw1wg8w
@user-tn3bw1wg8w 4 жыл бұрын
@@CODEBLOG спасибо большое)) теперь полностью понял, как по локальной и вайфай сети подключается) попробую оформить это всё под xamarin)
@sashkosashok
@sashkosashok 4 жыл бұрын
Судя по тому, как дыряво оповещает ютуб, можно сделать вывод, что оповещает он по UDP)
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Спасибо, посмеялся )))
@atler9865
@atler9865 4 жыл бұрын
А ведь походу так и есть хД)))
@imfrodo
@imfrodo 4 жыл бұрын
Не подскажешь, как лучше всего устроится на работу на 2 курсе?)) P.S. учусь на кибербезопасность, но это не особо важно, при надобности могу работать в любой IT отрасли ..
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Ходить на собеседования. Много. Посмотреть в сторону бюджетных компаний (вузы, школы, гос. предприятия и т.д.), возможно если в городе есть крупные IT компании, то они проводят стажировки, пробовать туда
@hematogen50g
@hematogen50g 2 жыл бұрын
не answer а response. не человек же отвечает. Но это мелочи, урок очень полезный для меня.
@Console.WriteLine
@Console.WriteLine Жыл бұрын
для продвижки
@EdwardNorthwind
@EdwardNorthwind 5 жыл бұрын
Смотрю плей-лист последовательно, по видео не скакал. ref появились впервые, где их объясняли не ясно. Почему do {} while()? Если нет сообщений, зачем пытаться что-то получить, что-то считать и что-то делать в принципе?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
хороший вопрос, ref И out наверное пропустил. если коротко ref позволяет передавать значимые типы по ссылке. но используются они не так часто на самом деле. наверно в одном из будущих видео запишу. do while нужно для того, чтобы было корректно установлено состояние сокета. иначе мы не можем быть на 100% уверены в корректности обращения udpSocket.Available до опроса endpoint
@pavelchagovskiy6447
@pavelchagovskiy6447 4 жыл бұрын
Продолжаю писать чат. Все указано в кодировке UTF8. Почему-то иногда проскальзывают знаки вопроса в элементе управления TextBox. Консоль все нормально принимает.
@CODEBLOG
@CODEBLOG 4 жыл бұрын
потому что кодировка winform приложения по умолчанию widows 1251
@semen083
@semen083 5 жыл бұрын
Можно ли с помощью сокетов послать сообщение с сервера на клиент( дуплексная связь)?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Зависит от конфигурации. При большом желании все-таки можно, но обычно сначала клиент обращается к серверу и после установки подключения они могут общаться сколько угодно )
@TheHeidelsteinsDays
@TheHeidelsteinsDays 3 жыл бұрын
@@CODEBLOG Мой клиент отваливается всегда на втором сообщении, и иногда при попытке коннекта порты пробовал менять несколько раз, что это могло бы быть и как решить? static void Main(string[] args) { IPAddress ip = IPAddress.Parse("127.0.0.1"); int port = 8888; var tcpEndPoint = new IPEndPoint(ip, port); var tcpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { tcpSocket.Connect(tcpEndPoint); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } while (true) { try { Console.Write("Enter your message: "); var message = Console.ReadLine(); if (message.Equals("exit")) break; var data = Encoding.UTF8.GetBytes(message); tcpSocket.Send(data); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); break; } var buffer = new byte[256]; int size; var answer = new StringBuilder(); do { try { size = tcpSocket.Receive(buffer); answer.Append(Encoding.UTF8.GetString(buffer, 0, size)); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); break; } } while (tcpSocket.Available > 0); Console.WriteLine(answer); } tcpSocket.Shutdown(SocketShutdown.Both); tcpSocket.Close(); }
@TheHeidelsteinsDays
@TheHeidelsteinsDays 3 жыл бұрын
@@CODEBLOG Значит, я нашёл причину к предыдущей проблеме. Сервер каждый раз закрывает соединение в цикле. Я вынес закрытие за цикл сделал, чтобы по сообщению exit они оба выходили из цикла и отключались, но теперь сервер вываливается на попытке tcpSocket.Receive(buffer), тупо не успевает принять данные, клиент закрывает соединение раньше, чем тут можно помочь?
@user-nf8jf8cl8z
@user-nf8jf8cl8z 4 жыл бұрын
Когда пытаюсь запустить сервер, вылетает exception в котором говорится что на методе bind я пытаюсь обратится к сокету методом запрещенным правами доступа. От админа запускал, та же хрень :( UPD: Зря панику развёл xD Хз кому интересно, но я это решил просто порт поменяв на 8888
@user-tj7xm1rb5x
@user-tj7xm1rb5x 4 жыл бұрын
спасибо тебе большое, та же проблема была. Очень помог
@winstochurgle9133
@winstochurgle9133 2 жыл бұрын
Изменил на 8888 и всё равно не помогло :(
@fovibaltpictures4655
@fovibaltpictures4655 3 жыл бұрын
"Если запрос некоректный - послает" можно было не продолжать и так понятно. хах.
@mkrugl
@mkrugl 5 жыл бұрын
Единственное, что хотелось бы, это поподробнее рассказывать о строках, которые пишите. Про builder так и не понял что он делает
@CODEBLOG
@CODEBLOG 5 жыл бұрын
А что именно не понятно? Builder по сути удобный инструмент для работы со строками и все )
@mkrugl
@mkrugl 5 жыл бұрын
CODE BLOG - Программирование и IT Благодарю!) Да я так и понял) Просто у нас препод не любит, когда одной фразой отвечают. Он любит, когда сложными предложениями говорят :D
@milkxd1512
@milkxd1512 3 жыл бұрын
Что значит белый айпишник 34:57
@hidan_hs
@hidan_hs 4 жыл бұрын
Как отправить файл через сокет?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Текст преобразовать в массив байт и передавать блоками точно также
@TheHeidelsteinsDays
@TheHeidelsteinsDays 3 жыл бұрын
Народ доброго всем. Никого не смутило, что что мы генерим переменные внутри бесконечного цикла, или это норм в C#?
@sayfulla1912
@sayfulla1912 3 жыл бұрын
в циклах используются локальные переменные
@alexandrsharp920
@alexandrsharp920 4 жыл бұрын
у меня порт 8080 не работает
@brianortega4087
@brianortega4087 5 жыл бұрын
Дружище. Вот скажи мне. Я уже 6 час копаюсь в интернете и ищу б***скую реализацию TCP через интернет (2 удалённых пк), а везде "хорошие люди" со своими localhost'aми. Может быть подскажешь что нибудь?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Работать должно точно также, только важно чтобы были открыты порты и использовался белый айпишник
@brianortega4087
@brianortega4087 5 жыл бұрын
@@CODEBLOG То есть в условном конструкторе TcpClient в клиенте должен стоять (я сервер) мой публичный IP в 2ip.ru?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Не, вряд ли серый IP пропустит. Тут нужно обратиться к провайдеру и получить белый (статичный) IP + проверит настройку брендмауера на компе и роутере, чтобы порты были открыты
@malikvalley
@malikvalley 4 жыл бұрын
Написал все точь в точь. Сервер получает сообщение клиента. Клиент НЕ получает сообщение сервера.
@user-lh6xe3zi1t
@user-lh6xe3zi1t Жыл бұрын
anal_status_udp открывали? 😁
@igorcoolman
@igorcoolman 5 жыл бұрын
привет из 2000-х, только спустя 20 я смог написать жалкое подобие чата ) и то нихера не понял, просто тупо перепечатывал ) даже если допилю, кто со мной будет в нем сидеть? )
@CODEBLOG
@CODEBLOG 5 жыл бұрын
может быть кто-нибудь из других подписчиков будет )))
@user-vg6gu8hc6w
@user-vg6gu8hc6w 4 жыл бұрын
Ну можете жену и детей туда посадить )
@user-kt4ml1uz9w
@user-kt4ml1uz9w 4 жыл бұрын
51 08
@dildora5836
@dildora5836 4 жыл бұрын
manga yoqmidi CTP va UDP
@armenboyajyan8838
@armenboyajyan8838 5 жыл бұрын
как узнать правильный порт подключения?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Зависит от того, что именно тебе нужно. если делаешь сам полностью систему, то сам можешь выбрать порт, а если подключаешься к какому-то приложению, то должно быть написано в мануале )
@armenboyajyan8838
@armenboyajyan8838 5 жыл бұрын
@@CODEBLOG скажем я имею два консольных приложения,одно играет роль сервера,другой-клиента,и клиент должен подключатся к серверу и наоборот.Можно как то узнать порт ,скажем,сервера?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
@@armenboyajyan8838 Ты сам выбираешь любой порт из доступных. главное, чтобы они совпадали и желательно не конфликтовали с другими приложениями
@armenboyajyan8838
@armenboyajyan8838 5 жыл бұрын
@@CODEBLOG ах я сам должен выбирать,ладно,спасибо большое,а то как то это стало проблемой
@ivanomelchenko1895
@ivanomelchenko1895 3 жыл бұрын
+++
@levshx
@levshx 5 жыл бұрын
А про UDP ?
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Так в видео же было про UDP. сначала про TCP, а потом то же самое на UDP
@ivanomelchenko1895
@ivanomelchenko1895 4 жыл бұрын
++++
@igorcoolman
@igorcoolman 5 жыл бұрын
попытался зациклить клиента и выдало: Необработанное исключение: System.ObjectDisposedException: Доступ к ликвидированному объекту невозможен. Имя объекта: "System.Net.Sockets.Socket". если while ставлю в самое начало метода, то сообщения доходят через одно
@CODEBLOG
@CODEBLOG 5 жыл бұрын
если выходит за пределы видимости, объект уничтожается. а так нужно смотреть, с ходу сложно сказать, в чем косяк
@igorcoolman
@igorcoolman 5 жыл бұрын
исправил выставив ковычки while (tcpSocket.Available > 0); { Console.WriteLine(answer.ToString()); tcpSocket.Shutdown(SocketShutdown.Both); tcpSocket.Close(); }
@unimaster3828
@unimaster3828 5 жыл бұрын
0 дизлайков =)
@alkelov
@alkelov 4 жыл бұрын
У меня почему - то у клиента(UDP) на 75 строке выходит исключение
@alkelov
@alkelov 4 жыл бұрын
Моя ошибка , всё из-за того что написал 127.0.0.2 вместо 127.0.0.1
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Бывают ошибки ) ничего страшного )
@vadimkcustom1759
@vadimkcustom1759 2 жыл бұрын
лайк если в 2022 учишь шарп
@user-bd3fv1jp3i
@user-bd3fv1jp3i Жыл бұрын
Когда только учишься работать лучше обходится без var, а использовать имена типов что бы было понятно.
@silvera_tv
@silvera_tv Жыл бұрын
Уроки отличные! Правда, этот дрончик в комментариях постоянно сбивает с мысли. Настолько раздражает и отвлекает от темы, что аж комментарий захотелось написать
@xtereone
@xtereone 4 жыл бұрын
Чел ты знаешь написал , что в своем курсе рассмотришь Unity, но ты его ни в одном из своих курсов не представил. Представишь?
@user-gn8sh8hm1m
@user-gn8sh8hm1m 4 жыл бұрын
проще на Си все это
@CODEBLOG
@CODEBLOG 4 жыл бұрын
не проверял, но это не исключено )
@olegholostenco8736
@olegholostenco8736 4 жыл бұрын
видео реклама каждые 5-10 минут, это просто жесть....
@atler9865
@atler9865 4 жыл бұрын
adblock на хром поставь и будет тебе счастье
@veerit3822
@veerit3822 3 жыл бұрын
шёл 18 день изучения c#.Стало всё ещё более не понятным.
@Name-kj8ew
@Name-kj8ew 4 жыл бұрын
Я єдиний, хто піймав подібне виключення??? System.Net.Sockets.SocketException (10048): Only one usage of each socket address (protocol/network address/port) is normally permitted
@atler9865
@atler9865 4 жыл бұрын
Пофиксил?
@Name-kj8ew
@Name-kj8ew 4 жыл бұрын
@@atler9865 , поки ні. Знаю, що дане виключення виникає, якщо сокет використовується, однак не розумію де і чим він юзається
@rtgRealTacticGames
@rtgRealTacticGames 3 ай бұрын
@@Name-kj8ew сам не ловил, но предполагаю что это занятый порт другой программой, посмотреть можно через netstat -ano | find ":наш_порт" последний столбец это pid процесса, для обхода на вскидку в голову приходит использования диапазон портов
@1pavka
@1pavka 8 ай бұрын
Чат с одним подлчением это очень просто. Вот мультипользовательский гораздо интереснее и сложнее
@_goldmanv5925
@_goldmanv5925 11 ай бұрын
После этого урока отбивает заниматься программированием. И тут возможно автор не в чем ни виноват, это иди0ты кто придумал такие сложности намудрили такую лажу...
@user-lv7em9jf6r
@user-lv7em9jf6r 3 жыл бұрын
Блин и тут ни слова про многопоточность, создавать для каждого клиента новый порт бред какой то
@superspy2008
@superspy2008 3 жыл бұрын
как связаны "каждые клиенты" и многопоточность? Внутри домена есть более эффективные средства взаимодействия, чем гонять пакеты через TCP на локалхосте
@andrewsed_uplisten2019
@andrewsed_uplisten2019 4 жыл бұрын
ты считаешь качество 720р это нормально? да я глаза сломал смотря твой стрим , а ведь глаза программиста это главный инструмент для взаимодействия головы с монитором
@Doker-man
@Doker-man Жыл бұрын
Подскажите пожалуйста, сделал клиент сервер по вашему уроку на Localhost всё работает отлично а вот пробую клиент на другой комп кинуть и задать ему внешний IP моего Пк где стоит серверное часть и коннекта нет клиент не видит сервер --------------------------------------------------------- Сервер //Точка подключения var tcpEndPoint = new IPEndPoint(IPAddress.Any, port); ---------------------------------------------------------- Клиент var ip = new IPAddress(new byte[] { 188,134,90,121 }); int port = 8080; //Точка подключения var tcpEndPoint = new IPEndPoint(ip, port); порт и там и там 8080
@kostya1306
@kostya1306 11 ай бұрын
Лучше бы молча написали код с текстовыми комментариями. Русским языком вообще не владеете.
@user-rq9mr8rn6w
@user-rq9mr8rn6w 6 ай бұрын
Охуеть, ты зашел на бесплатный курс, где чел делал свои ролики (кстати, неплохого качества) для блага других. Посмотрел и вместо благодарности решил кинуть предъяву. Похоже, что мозгом вообще не владеете)
@etelionmelgan7884
@etelionmelgan7884 4 жыл бұрын
до конца не досмотрел, по TCP/UDP откровенный бред, о том что UTF-8 кодируется от 1 до 4 байтов так же, надо бы знать, там даже подсказка в числе 8, код для TCP сервера рабочий только для небольших запросов, реально до 256 байт, не показано как грамотно обработать запрос длиной больше, как отправить, к примеру, большой кусок данных или сериализированный обьект, кроме того порт 8080 альтернативный для http, я б не советовал его грузить еще своим серваком зато были тупые анекдоты из 90х о tcp/udp
@Gelenbagen
@Gelenbagen 5 жыл бұрын
Блин, не лучше ли писать часть кода, потом читать часть комментариев? Смотреть на эти бесконечные заикания сложно, да и мысль автор часто выражает криво
@Serjaru
@Serjaru 4 жыл бұрын
2 часа ни о чем! где мультисервер??? где async методы? для сервера актульное, чтобы было многопоточное подключение! а рассказывать два часа, как один сокет к другому - это жесть. В общем тема не раскрыта!
@domore6725
@domore6725 4 жыл бұрын
так что тогда ты такой умный тут делаешь? Видео не рассчитано на полное раскрытие, а всего лишь на ознакомление. Для новичка этого достаточно...
@user-kr5zx6ov2u
@user-kr5zx6ov2u 3 жыл бұрын
Много воды, ничего толкового!!!! Речь не поставлена... Урок говно!!!!
Best Toilet Gadgets and #Hacks you must try!!💩💩
00:49
Poly Holy Yow
Рет қаралды 23 МЛН
Lehanga 🤣 #comedy #funny
00:31
Micky Makeover
Рет қаралды 18 МЛН
Каха заблудился в горах
00:57
К-Media
Рет қаралды 10 МЛН
لقد سرقت حلوى القطن بشكل خفي لأصنع مصاصة🤫😎
00:33
Cool Tool SHORTS Arabic
Рет қаралды 29 МЛН
Константы и var C# | Курс от нуля до профи | #3
4:27
Naibell | Все о программировании
Рет қаралды 89
API простыми словами. Что такое API? | 2022
4:00
Best Toilet Gadgets and #Hacks you must try!!💩💩
00:49
Poly Holy Yow
Рет қаралды 23 МЛН