|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
Нашел вот такой симпатичный класс. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58.
Открываю сервер Код: c# 1. 2.
А как я получаю данные? Явного метода в классе нет, или я что то не понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 12:58 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
начни с изучения литературы. её мегатонны на просторах интырнета ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 17:35 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
и не ищи "симпотичных" классов. пользуйся чем-то стандартным ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 17:36 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
love_bach и не ищи "симпотичных" классов. пользуйся чем-то стандартным чем например? и чем мой пример нестандартен? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 08:17 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
jenya7 love_bach и не ищи "симпотичных" классов. пользуйся чем-то стандартным чем например? и чем мой пример нестандартен? Тем что ты нашел какой-то код без документации и примеров использования и наивно думаешь что другие захотят в нем ковыряться чтобы тебя научить им пользоваться. Погугли другие примеры, в инете их полно. Вот например ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 09:33 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
Dima T jenya7 пропущено... чем например? и чем мой пример нестандартен? Тем что ты нашел какой-то код без документации и примеров использования и наивно думаешь что другие захотят в нем ковыряться чтобы тебя научить им пользоваться. Погугли другие примеры, в инете их полно. Вот например спасибо. я создал сокет Код: c# 1. 2. 3.
Дальше начинаются проблемы - SendTo() - мастер не знает IP удаленных машин. пробовал так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
То же самое с ReceiveFrom() - я не знаю какой IP пришлет сообщение. я должен получить сообщение от всех машин в локальной сети. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 09:52 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
jenya7 я создал сокет Код: c# 1. 2. 3.
Ты создал сокет на локальном интерфейсе 127.0.0.1, через него могут обмениваться только приложения запущенные на одном компе. Надо на всех интерфейсах создавать. Попробуй так Код: c# 1.
И учти что при первом запуске выйдет окошко брандмауэра виндавса и попросит пользователя разрешить твоему приложению работать с сетью, если запретишь, то этот комп не сможет ни отправить, ни принять. При этом никаких ошибок не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 10:17 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
Dima T jenya7 я создал сокет Код: c# 1. 2. 3.
Ты создал сокет на локальном интерфейсе 127.0.0.1, через него могут обмениваться только приложения запущенные на одном компе. Надо на всех интерфейсах создавать. Попробуй так Код: c# 1.
И учти что при первом запуске выйдет окошко брандмауэра виндавса и попросит пользователя разрешить твоему приложению работать с сетью, если запретишь, то этот комп не сможет ни отправить, ни принять. При этом никаких ошибок не будет. А как я сделаю байнд с IPAddress.Any? я же должен привязать к своему IP. у меня все машины подключены к общему AP. AP выдал им всем IP адреса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 10:21 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
на своей машине нет проблем я знаю свой IP. при посылке мне нужен IPAddress.Any но я получаю исключение. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 10:25 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
jenya7 Dima T пропущено... Ты создал сокет на локальном интерфейсе 127.0.0.1, через него могут обмениваться только приложения запущенные на одном компе. Надо на всех интерфейсах создавать. Попробуй так Код: c# 1.
И учти что при первом запуске выйдет окошко брандмауэра виндавса и попросит пользователя разрешить твоему приложению работать с сетью, если запретишь, то этот комп не сможет ни отправить, ни принять. При этом никаких ошибок не будет. А как я сделаю байнд с IPAddress.Any? я же должен привязать к своему IP. у меня все машины подключены к общему AP. AP выдал им всем IP адреса. Это и есть твой IP. IP это адрес сетевого интерфейса . На компе интерфейсов может быть сколько угодно. Передавая IPAddress.Any в Bind() ты сообщаешь что надо открыть порт на всех интерфейсах этого компа . 127.0.0.1 это специальный локальный интерфейс ( localhost ), он доступен только в пределах одного компа. Типа внутренняя сеть для приложений на одном компе. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 10:39 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
jenya7 на своей машине нет проблем я знаю свой IP. при посылке мне нужен IPAddress.Any но я получаю исключение. Потому что при отправке надо указывать IPAddress.Broadcast. Сеть локальная? Широковещательные отправки за роутер не пройдут. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 10:43 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
Dima T Это и есть твой IP. IP это адрес сетевого интерфейса . На компе интерфейсов может быть сколько угодно. Передавая IPAddress.Any в Bind() ты сообщаешь что надо открыть порт на всех интерфейсах этого компа . Понял. Но тут как раз проблемы нет. Меня устраивает привязка к моему IP. Мне при посылке надо послать всем. типа IPAddress.Broadcast но он не работает. или IPAddress.Any нужен чтоб принимать сообщения от всех? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 10:47 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
jenya7 Dima T Это и есть твой IP. IP это адрес сетевого интерфейса . На компе интерфейсов может быть сколько угодно. Передавая IPAddress.Any в Bind() ты сообщаешь что надо открыть порт на всех интерфейсах этого компа . Понял. Но тут как раз проблемы нет. Меня устраивает привязка к моему IP. Мне при посылке надо послать всем. типа IPAddress.Broadcast но он не работает. или IPAddress.Any нужен чтоб принимать сообщения от всех? У тебя нет привязки к твоему IP, ты НЕ отправляешь в сеть ничего! Если тебя устраивает твой IP, то его и пиши вместо 127.0.0.1. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 11:44 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
У тебя как минимум два интерфейса: локальный 127.0.0.1 и сетевой, например 192.168.0.102. Объясняю на пальцах как оно работает: ты находишься в комнате (комп) с двумя дверьми (сетевые интерфейсы): на кухню (127.0.0.1), в коридор (192.168.0.102). Ты открываешь (bind()) дверь на кухню и показываешь (SendTo()) туда плакат с текстом. И задаешь вопрос: почему в коридоре плакат не видно? Дошло что ты не в тот интерфейс отправляешь? Надо или указывать правильный интерфейс (твой IP в локалке), или открывать порт сразу на всех интерфейсах (IPAddress.Any) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 11:58 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
Dima T У тебя как минимум два интерфейса: локальный 127.0.0.1 и сетевой, например 192.168.0.102. Объясняю на пальцах как оно работает: ты находишься в комнате (комп) с двумя дверьми (сетевые интерфейсы): на кухню (127.0.0.1), в коридор (192.168.0.102). Ты открываешь (bind()) дверь на кухню и показываешь (SendTo()) туда плакат с текстом. И задаешь вопрос: почему в коридоре плакат не видно? Дошло что ты не в тот интерфейс отправляешь? Надо или указывать правильный интерфейс (твой IP в локалке), или открывать порт сразу на всех интерфейсах (IPAddress.Any) я открыл порт на IP который выделил мне AP. а как послать сообщение всем? и как принять сообщение от других машин в сети если они не знают мой IP ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 12:05 |
|
Получить данные по UDP сокет.
|
|||
---|---|---|---|
#18+
jenya7 Dima T У тебя как минимум два интерфейса: локальный 127.0.0.1 и сетевой, например 192.168.0.102. Объясняю на пальцах как оно работает: ты находишься в комнате (комп) с двумя дверьми (сетевые интерфейсы): на кухню (127.0.0.1), в коридор (192.168.0.102). Ты открываешь (bind()) дверь на кухню и показываешь (SendTo()) туда плакат с текстом. И задаешь вопрос: почему в коридоре плакат не видно? Дошло что ты не в тот интерфейс отправляешь? Надо или указывать правильный интерфейс (твой IP в локалке), или открывать порт сразу на всех интерфейсах (IPAddress.Any) я открыл порт на IP который выделил мне AP. а как послать сообщение всем? и как принять сообщение от других машин в сети если они не знают мой IP ? AP это что? В твоем примере 127.0.0.1 указано 22343502 Для начала разберись как послать на IP:порт другого компа, добейся чтобы доходило. Затем усложняй задачу до широковещательной рассылки. Как уже написал проблемы могут быть с настройкой сети, тупо брандмауэр получателя не пропускает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 12:20 |
|
|
start [/forum/topic.php?fid=20&msg=40081766&tid=1398263]: |
0ms |
get settings: |
16ms |
get forum list: |
25ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
99ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
344ms |
get tp. blocked users: |
2ms |
others: | 326ms |
total: | 838ms |
0 / 0 |