Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Задачи выполнил, ушёл
27 / 30 / 7
Регистрация: 16.10.2015
Сообщений: 345

Нюанс про сокеты и привязку

29.10.2015, 18:18. Показов 2185. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хотелось бы узнать про сокеты некоторые теоретические нюансы:

1. Если я привязал сокет через метод Bind к определённому порту, то чтобы сменить порт, нужно сначала закрыть привязанный сокет и затем создать новый и его уже привязать к новому порту?

2. Если я уже привязал сокет через метод Bind к определённому порту, могу ли я один и тот же сокет привязать к другому порту, чтобы сокет был привязан к нескольким портам?

3. Могу ли я к одному и тому же порту привязать два разных сокета?

4. Какой тип привязки сокета и порта: 1 к 1, 1 ко многим, многие к 1, многие ко многим?


Скажите пожалуйста, правильно ли я сам ответил на эти вопросы:
1. Да
2. Нет
3. Нет
4. К одному сокету может быть подключён только один порт, к одному порту можно подключить только один сокет, тип 1 к 1.

Правильно?
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2015, 18:18
Ответы с готовыми решениями:

Вопросы про сокеты
Пишу под винду. получать и отправлять данные вроде научился. (HTTP) вопросы: 1 - как мне получать ТОЛЬКО заголовки страниц ? if (...

Где почитать про сокеты?
Привет всем. Руки дошли до сокетов, но во многих туториолах бывает не очень подробно рассказывается что к чему. Где можно хорошенько...

Объясните про сокеты
Никак не дойдёт вот на javascript сокет написал, с тестовых эхо сервером связался - всё в порядке. Но мне надо свяываться с...

4
Native x86
Эксперт Hardware
 Аватар для quwy
6857 / 3790 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
29.10.2015, 18:28
Цитата Сообщение от noname664 Посмотреть сообщение
Правильно?
Да.
1
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
29.10.2015, 22:33
1. Зависит от реализации TCP/IP.
2. Нет.
3. Да (см. SO_REUSEADDR).
4. Один порт - один или несколько сокетов (обычно один). Это если в контексте bind.
А вообще, сетевое соединение однозначно идентифицируется так называемым
4-tuple: локальный адрес, локальный порт, удаленный адрес, удаленный порт.
1
Задачи выполнил, ушёл
27 / 30 / 7
Регистрация: 16.10.2015
Сообщений: 345
30.10.2015, 14:23  [ТС]
Тестировал сокеты UDP на VS2012 C++ Windows 7 x64 SP1.

Все тесты были на интерфейсе 0.0.0.0.

Чтобы сбросить привязку сокета к порту, пришлось закрыть сокет и создавать его заново и снова биндить.

Также не получилось забиндить один сокет на пару портов, равно как и не получилось привязать разные сокеты к одному и тому же порту.

Пришёл к логичному выводу, что на указанной ОС привязка 1 к 1, т. е. и сокет, и порт поддерживают одну и только одну привязку.

А в Линуксе наверно всё не так, но у меня его нет.

Добавлено через 6 минут
Убежденный, расскажите пожалуйста своими словами про SO_REUSEADDR и на какой ОС она используется и относиться ли это к UDP.
Предполагаю это относится и к Linux и к TCP ?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
30.10.2015, 16:57
MSDN лучше расскажет, чем я:

Using SO_REUSEADDR and SO_EXCLUSIVEADDRUSE
https://msdn.microsoft.com/en-... s.85).aspx
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2015, 16:57
Помогаю со студенческими работами здесь

Ещё раз про сокеты
Вернулся к вопросу о создании сокет сервера Вот взял примерчик из сети // set some variables $host = “192.168.1.99”; $port =...

Php сокеты и unix-сокеты
Здравствуйте, есть программа, написанная на С под Linux. При её работе в памяти хранятся несколько массивов, которые необходимо обработать...

Нюанс в батнике
Возникла такая проблема: когда закрываю скобку или прописываю метку после %..._count% не считает количество файлов нужного типа в папке....

Listbox и 1 нюанс
Есть такой код: procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char); var sl: TStringList; i: integer; begin ...

Swith - нюанс
Такой вот вопрос: как сделать так, что бы при неправильном вводе пользователя какой-либо строки, вопрос о повторении ввода не выбивался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru