Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Komunikator
Usercontrol
mr. Tom



Typ: neutral
Postów: 191
Zarejestrowany: Oct 2003
Komunikator

Jak mi wiadomo, program serwer musi stworzyc tyle winsocków, ile użytkowników chce sie połączyc. Czy można to jakoś innaczej rozwiązać? Piszę komunikator internetowy, i pojawiło sie ograniczenie(nie da sie stworzyc 1000000 winsocków).
Z góry dzieki

14-11-2004 20:53
Pokaż profil Usercontrol  Wyślij email do Usercontrol   Odwiedź stronę Usercontrol       1518548
kicaj




Typ: neutral
Postów: 271
Zarejestrowany: Aug 2003

zrób to nie za pomocą winsock ale za pomoca Api, gdzieś na vb4all albo na vbtools był czhyba przykład

14-11-2004 21:58
Pokaż profil kicaj  Wyślij email do kicaj        3914568
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003

Po za tym po co tworzyć wszystkie 1000000 winSocków naraz? :/ Zrób WSy w tablicy i doładowywyuj kolejnego jeśli będzie taka potrzeba... (jeśli ktoś się będzie łączył), gdy ktoś się rozłączy (winsock zostanie zamknięty) a ktoś będzie chciał się połączyć to nie ładujesz kolejnego tylko wykorzystujesz zamknięty, ale jednak użyteczny Winsock...

Nasłuchiwanie na indexie 0 w zdarzeniu connectionrequest dajesz odwołanie to tej procedurki:

Poniższy kod pochodzi z działającego komunikatora więc wiem, że działa

Public Sub AcceptWsMainConnection(lngRequestID As Long, Index As Integer)
    Dim i As Integer

    'Wyszukiwanie wolnego winsocka
   
    For i = 1 To frmLoader.wsMain.Count
        If i = frmLoader.wsMain.Count Then
            Load frmLoader.wsMain(i) 'Doładuj winsocka
        End If

        If frmLoader.wsMain(i).State = sckClosed Or frmLoader.wsMain(i).State = sckClosing Or frmLoader.wsMain(i).State = sckError Then 'Po znalezieniu wolnego winsocka
            frmLoader.wsMain(i).Close 'Na wszelki wypadek gdyby status był np. sckError
            frmLoader.wsMain(i).LocalPort = frmLoader.wsMain(0).LocalPort
            frmLoader.wsMain(i).Accept lngRequestID

            Exit For
        End If
    Next i
End Sub

frmLoader.wsMain - to jest obiekt winsocka (jako tablica!)

[Post edytowany dnia 15-11-2004 15:27 przez hicks]


_____________________________________________
TLHW Clan member

15-11-2004 15:26
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
Usercontrol
mr. Tom



Typ: neutral
Postów: 191
Zarejestrowany: Oct 2003

Ale chyba nawet jak użyję indeksów to będzie wolno chodziło. Czy tak? Czy jak zrobię za pomocą Api to będę mógł podłączyc do programu serwerowego 100000 klientów?
THX

16-11-2004 16:14
Pokaż profil Usercontrol  Wyślij email do Usercontrol   Odwiedź stronę Usercontrol       1518548
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003

Cóż raczej nie... Noo chyba, że masz procka 50000GHz i kilka terabajtów ramu Twój problem można rozwiązać budując sieć serwerów jako strukturę drzewiastą... W której "liście" są to oddzielne komputery-serwery połączone ze sobą w pewnego rodzaju sieć... Jak chcesz to wyjaśnię Ci dokładnie to rozwiązanie, ale nie teraz, bo nie mam dziś czasu...


_____________________________________________
TLHW Clan member

16-11-2004 19:47
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
Usercontrol
mr. Tom



Typ: neutral
Postów: 191
Zarejestrowany: Oct 2003

Czy ktoś wie jakie pod tym względem rozwiązanie ma gg?

17-11-2004 13:01
Pokaż profil Usercontrol  Wyślij email do Usercontrol   Odwiedź stronę Usercontrol       1518548
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003

o ile mi wiadomo (być może się mylę) to mają kilka serwerów... pewnie zbudowanych na podobnej zasadzie co mój pomysł... Później może wyjaśnię dokładnie co i jak, bo narazie nie mam czasu...

[Post edytowany dnia 17-11-2004 14:50 przez hicks]


_____________________________________________
TLHW Clan member

17-11-2004 14:49
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
Usercontrol
mr. Tom



Typ: neutral
Postów: 191
Zarejestrowany: Oct 2003

THX

18-11-2004 18:37
Pokaż profil Usercontrol  Wyślij email do Usercontrol   Odwiedź stronę Usercontrol       1518548
Wszystkich odpowiedzi: 7 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1