2010-02-11 11 views
6

Przeglądałem dokumenty z gniazdem Pythona i Google przez dwa dni, ale nie znalazłem żadnej odpowiedzi. Tak, jestem programistą sieciowym :)gniazdo strumieniowe wysyłać/odbierać wiadomości sieciowe?

Chciałbym wdrożyć system czatowania w sieci LAN o określonej funkcji dla naszych potrzeb. Jestem na samym początku. Udało mi się zaimplementować model klient-serwer, w którym klient łączy się z serwerem (socket.SOCK_STREAM) i może zmieniać wiadomości. Chcę zrobić krok naprzód. Chcę, aby klient odkrył sieć LAN z transmisją, ilu jest dostępnych innych klientów. Nie udało mi się. Czy jest możliwe, że gniazdo typu socket.SOCK_STREAM nie może być użyte do tego zadania? Jeśli tak, jakie są moje szanse? używając pakietów udp? Jak mam słuchać wiadomości/pakietów brodcast?

Odpowiedz

4

Emisja jest określona przez adres docelowy.

Na przykład jeśli własne IP 192.168.1.2, adres broadcast byłoby 192.168.1.255 (w większości przypadków)

To nie jest związane bezpośrednio z pytona i prawdopodobnie nie będzie w jego dokumentacji. Szukasz sieci „wiedzy ogólnej”, na poziomie znacznie wyższym niż programowanie gniazd

* EDIT

Tak masz rację, nie można używać SOCK_STREAM. SOCK_STREAM definiuje komunikację TCP. Powinieneś używać UDP do nadawania z socket.SOCK_DGRAM

+0

Dziękuję Eric, zmodyfikuję mój kod, aby zmienić komunikację na datagramie. – sipiatti

+0

ah ok, gotowe. Nie wiedziałem tego. – sipiatti