Найти - Пользователи
Полная версия: Создание чата( chat ) для локальной сети( lan )
Начало » Network » Создание чата( chat ) для локальной сети( lan )
1 2 3
igor.kaist
Оказывается все очень просто:
MYPORT = 50000


from socket import *
s = socket(AF_INET, SOCK_DGRAM)
s.bind(('', 0))
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
s.sendto('hello', ('<broadcast>', MYPORT))
Работать будет я так понимаю в одном сегменте сети?
sypper-pit
сеть одноранговая
igor.kaist
sypper-pit
сеть одноранговая
ну да, в этом случае архитектура “сервер-клиент” и не нужна получается вовсе.
Да и за пределы роутера бродкаст может пройти, если там роутинг включит.
sypper-pit
те кк я понял этот код делает , отправку сообщения… осталось только слушать порт
sypper-pit
Предполагаю, что можно сделать чтоб отправлялось
s.sendto('<my_ip> <my_name>', ('<broadcast>', MYPORT))
а дальше прога отправляла на получателя.
igor.kaist
sypper-pit
отправку сообщения… осталось только слушать порт
тот же самый код что и выше…
MYPORT = 50000
from socket import *
s = socket(AF_INET, SOCK_DGRAM)
s.bind(('', 0))
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
print s.recv(500)
для внутреннего чатика, можно сделать велосипед вида:
1. каждый клиент опрашивает сеть на предмет того кто с сети, другие клиенты отвечают свои имена.
2. При отправке сообщения кому либо, указываем, что отправляем пользователю “Маша” (согласно своему придуманному протоколу). “Маша” видит что сообщение предназначалось именно ей, и принимает, другие игнорируют.
как то так…
PooH
Вот убивал бы тех кто бродкастит в сети. Ничего личного ;)
o7412369815963
igor.kaist
че та не работает, пример
o7412369815963
o7412369815963
igor.kaist
че та не работает, пример
разобрался, при отправке нужно указывать подсеть в которую пулять пакет “192.168.0.255”
и при приеме нужно указать порт в bind

ЗЫ: при отправке bind не нужен
sypper-pit
igor.kaist
насчёт придуманного протокола , можно еще и файлы тогда пробовать передавать. Только думаю тогда при передаче бруткастом файла , сеть будет пакетами изобиловать :) однако если это пробовать, еще в кеш скинуть :) можно по пробовать сделать что то вроде большего прокси.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB