понедельник, 31 октября 2011 г.

Простой UDP-чат на WinSockApi

Статья переехала: новая ссылка

5 комментариев:

  1. как раз на udp на одной из зимних практик я написал чат, вся группа в нем сидела, была проверка кто в онлайне ники, защита от пустых строк и еще пару фишек. Для изучения сетевого программирования чат самое то)))

    ОтветитьУдалить
  2. Молодец, неплохо написано :)

    Проглядел по диагонали (сижу на паре), приду домой, прочитаю.

    ОтветитьУдалить
  3. Возник вопрос, к твоей статье и к тебе относящийся слабо, но гуглить лень :)

    UDP и TCP/IP, оба завязаны на связку IP:Port. Если у одного(двух, трех, всех) клиентов, а то и у сервера эти адреса не являются выделенными (серые айпишники), как тогда держать связь? Ну, кроме проброса порта от оборудования с реальным ипом (роутер) до нужного компа?

    Например, провайдер дает серый ип, не будешь же ты ему звонить и просить сделать роутинг ***** порта исключительно на тебя.

    Или допустим другую ситуацию - динамический IP, предугадать заранее мы его не можем.

    В общем, это все конечно гуглится, но хотелось бы услышать и твое мнение :)

    ОтветитьУдалить
  4. Для того чтобы все друг друга видели и делают связки клиент-сервер, сервер на реальном IP стоит, а клиенты откуда будут - уже не важно.
    У сервера определённые IP и Port, чтобы клиенты заранее знали куда подключаться, а у клиента и IP динамический может быть и порт выдаваться системой может.
    Адреса для UDP и TCP выглялят как IP:Port.
    В случае UDP, сервер должен держать их в "голове" чтобы отвечать, записывая их при первой датаграмме от клиента.
    В случае TCP сервер может создавать специальный сокет для вновь подключевшегося и общается данными через этот сокет.

    ОтветитьУдалить
  5. Ага, понятно. А если без сервака (клиент-клиент напрямую, так скажем), то тут либо локальная сеть, либо... даже не знаю что.

    Спасибо, прояснил ситуацию. Как-нибудь надо будет засесть за сетевое взаимодействие.

    ОтветитьУдалить