|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.12.2012, 16:55 | #1 |
Пользователь
Регистрация: 16.10.2012
Сообщений: 27
|
Обмен сообщеними по UDP
Здравствуйте, пишу чат по UDP. Хочу добиться вот чего, запускается сервер и два клиента. На первом клиенте пишется сообщение, и отправляется на сервер, оттуда оно передаётся на второй клиент.
Но получается вот что. Запускаю сервер и два клиента, на одном клиенте пишу сообщение, оно отправляется на сервер а затем обратно к тому же клиенту, до втрого ни чего не доходит, просто на сервер и обратно. Помогите пожалуйста, как заставить его обмениваться сообщениями, широковещательно или с указанием адреса того кому нужно отправить без разницы. Вот код сервера. Код:
Вот код клиента. Код:
|
26.12.2012, 21:56 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...достаточно использовать широковещательные запросы и понятие сервер-клиента станет относительным, все будут получать сообщения от всех.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
26.12.2012, 22:05 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Вам надо хранить адреса всех активных клиентов и когда получите сообщение от одного посылать его всем кроме того, от кого получено. У вас будет куча проблем, начиная с того, кого хранить в списке активных контактов и кончая тем, что делать, если сообщение не дойдет до клиента и/или до сервера.
|
26.12.2012, 22:17 | #4 |
Пользователь
Регистрация: 16.10.2012
Сообщений: 27
|
Программа не будет использоваться как какое-то решение, всё что от неё требуется это включить её на разных компах и написать друг другу сообщения. То-есть она нужна на один раз.
Я пробовал добавить широковещательные запросы, но поскольку с C++ я знаком где-то неделю, и единственное что я делал до этого чата был "Hello World", поэтому естественно у меня ни чего не получилось. Я пробовал прописывать sin.sin_addr.s_addr=htonl(INADDR_BR OADCAST) и т.д, но кроме сообщения о переполнения буфера при компиляции ничего не получил. Если это не очень трудно, не могли бы Вы показать, что и на что нужно заменить, что-бы она уже заработала? |
26.12.2012, 23:36 | #5 |
Пользователь
Регистрация: 16.10.2012
Сообщений: 27
|
Насколько я понял, если все адреса в моей локальной сети начинаются на "192.168.1.", то широковещательный запрос будет выглядеть вот так "192.168.1.255"?
Так вот у меня появилась идея, предложить пользователю на выбор либо указать IP компьютера которому нужно отправить сообщение, либо выбрать широковещательное послание. Поэтому я добавил следующий код: Код:
|
30.12.2012, 00:10 | #6 |
Пользователь
Регистрация: 16.10.2012
Сообщений: 27
|
Вобщем программа почти готова, подскажите пожалуйста, мне нужно, чтобы большие сообщения разбивались на отдельные меченные фрагменты. Как этого добиться? Подскажите хотя-бы источники на эту тему.
|
30.12.2012, 00:22 | #7 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
30.12.2012, 00:38 | #8 |
Пользователь
Регистрация: 16.10.2012
Сообщений: 27
|
Скажите в выше написанный код трудно будет встроить эту возможность. Правда я немного изменил код, теперь несколько клиентов посылают сообщения на сервер, а он их просто принимает и выводит на экран, но не суть.
С С++ я практически не знаком, только по этому заданию, поэтому без примеров мне пока трудно разобраться, может кто сможет помочь мне за отдельную плату, потому как я с этими делениями на фрагменты не разберусь ни как? Там большой объём работы, что-бы реализовать это? |
09.01.2013, 00:26 | #9 |
Пользователь
Регистрация: 15.12.2010
Сообщений: 15
|
не поделитесь исходниками? тоже в этом направлении разбираюсь, было бы полезно посмотреть на конечный вариант
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
UDP обмен данными | Dima DDM | Работа с сетью в Delphi | 0 | 21.11.2011 22:37 |
Обмен байтами через Udp | Dima DDM | Работа с сетью в Delphi | 8 | 03.01.2011 04:19 |
Потоки UDP и.в.т. | peplenko | Помощь студентам | 0 | 13.12.2010 23:12 |
прочитать UDP | AmonRa | Работа с сетью в Delphi | 0 | 22.11.2010 06:32 |