Приветствую Объясните пожалуйста как создать многопользовательский чат (НЕ для локалки). Для локально сети примеров куча, но это не то. Насколько я понимаю нужно серверное приложение, которое будет на компе с выделеным ип, и клиентское для пользователей. Клиент пишет на сервер, а сервер уже передает сообщение или всем или одному. Теперь вопросы. 1) Подойдет ли дедик для установки программы "Сервер"? 2) Какие протоколы использовать (скорость передачи текста важна)? 3) Как осуществить чат так чтобы между ПК передавать данные, а не по локалке? Может у кого то есть исходники?
1) Да. 2) irc\xmpp >> Как осуществить чат так чтобы между ПК передавать данные, а не по локалке? шта?
С этими протоколами есть куча примеров, но они работают только по локальной сети, а если я ставлю сервер на дедик (1.1.1.1@admin:123), затем в клиенте указываю ip сервера 1.1.1.1, то ничего не выходит. Просто есть куча примеров с чатом по локальной сети, а просто между компами (не в локалке) нету
1) для сервера подойдет любая машина, которая будет иметь белый и желательно статический IP 2) на счет tcp и udp, то тут есть небольшая ремарка, udp быстрее, не устанавливает соединения и не проверяет целостность данных, то есть проверку на целостность переданных/полученных данных придется производить самому, и если учитывать, что потребуется передача файлов, то тут лучше использовать tcp 3) не понятно сформулирован вопрос ps: те реализации чатов для локалки, что в основном выкладывается в сети, используют для отправки сообщения "остальным" клиентам многоадресную рассылку (аля 192.168.1.255 ), что не подходит для работы через инет
Я не могу понять понять как сделать чтоб по сети сообщение, передавать, по локалке ясно. Можно ли переделать локальный чат, для того чтоб через инет обмениваться сообщениями, если да, то как? Клиент должен быть на компе с ип:193.109.*.*, а сервер на дедике
а в чем проблема, если не вдаваться в подробности, то централизованная схема может такой: есть сервер, есть клиенты. Сервер принимает коннекты от клиентов и управляет пересылкой сообщений от клиента к клиенту. То есть является ядром, центром, и должен выполнять возложенные на него функции по авторизации, отслеживанию клиентов, пересылке пакетов, предоставлении информации о клиентах и т.д. и т.п. все что будет заложено в протокол. Для понимания и возможных реализаций можно посмотреть доку по тем же IM протоколам, например icq, obimp, mra. а так, без обид, если не требуется создать именно свое, то с вашими знаниями в данной области, лучше заюзать что-то готовое, например bimoid
Схему того как это организовать я знаю, но не могу передать сообщение, только в локальной сети получается. Нужно именно написать программу, а не брать готовую
Порт открыл, так как тут написано, но я так понимаю что может быть такое что на роутере порт закрыт. Как проверить открытость порта
netstat -an на сервере, посмотреть, прослушивается ли порт или нет. telnet ip : port с локальной машины (на Win7 надо включить еще клиента в "Программы и компоненты"), где ip - адрес сервера, port - открытый порт на сервере.
Да, когда включена. Тебе конечно уже ответили, но что бы с клиентской частью не париться можешь на canyouseeme.org с серверной машины зайти и проверить прослушивается порт или нет
да напиши свой протокол, банально typedef struct _PACKET_HEADER { DWORD dwType; // 0 - text, 1-binary data, etc DWORD dwSize; BYTE szPayload[0]; }PACKET_HEADER, *PPACKET_HEADER; ясное дело что допилишь всякие поля когда идут метаданные юзается шифрование итд- ну ты понел я думаю