niin siis teen tässä omaa chattii ja nyt pitäs sit saada se käymään monelle .. siis monata clienttii pystys yhditää servuun. tässä on tää: https://www.ohjelmointiputka.net/koodivinkit/
... mutta toi on vähän väärän lainen (ja monimutkanen) mun tarpeisiin ... joten oiskohan helpompaa tapaa siihen että ne kaikki clientit vois olla yhteydessä servuun yhtäaikaa?
(en tarvii mitään niitä muita roippeita kuten viestin lähetys, vaan ton mitä tossa mainitsin)
Idea on siinä, että jokaiselle yhteydelle on (serverin winsockilla) oma indexi eli jokainen yhteys otetaan vastaan eri indexiin. En osaa nyt yhtäkkiä paremmin selittää.
hmm.. miten mä sit saisin luotuu jokaselle yhteydelle eri indexin? :|
Lainaus vinkistä:
Private Sub ws_ConnectionRequest(Index As Integer, ByVal requestID As Long) ws(Index).Close 'suljetaan se, kuuntelutilassa ei voida ottaa yhteyksiä DoEvents 'ja annetaan sen sulkeutua ws(Index).Accept requestID ' otetaan yhteys Load ws(ws.Count) 'tehdään uusi wössi (taikuutta!) ws(ws.UBound).LocalPort = portti.Text 'setataan sen portti ws(ws.UBound).Listen 'ja kuunnellaan sillä MsgBox "Oho, mehän ollaan ihan julkkiksia! Sokettiin #" & Index & _ " yhdistää joku pälli id:llä " & requestID & " .", vbInformation, "Wössi-Inhvo" servutieto.Caption = "Soketteja yht. " & ws.Count End Sub
Tossa se on ihan suoraan. Oli mulla itelläniki hiukan vaikeuksia ymmärtää kokonaisuutta kerralla, mutta kun katoin yhtä kohtaa kerrallaan niin jo rupesin tajuamaan.
joo.. voisin kokeilla ku pääsen himaan täält koulust xD
... tosiaanki tost koodist ei oikee ota selvää ja noi kommentit sun muut on ah niin selvät :D:D:D .... no pitää koittaa väsää jotai.
Päh.. Tekisin vb-winsock-oppaan heti jos aikaa löytyisi :D
CoDeR: selkeitä ne on! :D Ja kysy vaikka meilillä multa sitten tarkemmin se mitä jäi epäselväksi. Tai tässä ihan sama mulle mutta ettei tulis hirveen pitkä tästä ja sillai...
no onhan noi ihan :D .. paitsi kommentit ja muuttujien nimet :D
No mun kommentit ja muuttujat nyt on parhaita =) Sooda-laatua :D Pitäähän ohjelmoinnin olla rentoa ;P
Niin ja en jaksa miettiä variaapeleille parempia nimiä niin ne on niitä mitä ekana tulee mieleen. :)
:D:D ... mitä tohon nyt sanos :D
tässä vielä tuli mieleen että tossa mun ohjelmassa on se DataArrival tapahtuma.. niin eikö sen pitäisi toimia että jos siihen kirjottaa:
If msg(muuttuja johon tallennetaan saatu tieto)= "viesti" then
MsgBox "moi"
End If
... niin ilmestyy msg box (siihen serveri ohjelman päälle siis) .... ja sit kun annan clientistä tolle serverille komennon "viesti" niin sinne päähän pitäisi ilmestyä msgboxi.... eipä vaan ilmesty :(:(:( ... ?
CoDeR jos haluat voin luovuttaa oman projektini sinulle
Sooda: Ainakin minulle lähetit mainion winsock oppaan. Niin no ei siinä tainnut olla kommentteja, mutta kylläse minusta niin yksikertaista oli, että siihen ei tarttenut muten paneutua, toisin kuin sen monen juttelu höskä. Sillä sai ajan kulumaan...
ok Cc ... pist tulloo: widel89@suomi24.fi ...
edit: niin no... tai tai sit tohon sk3l3t0niin ... sama se mulle :D
Zcmander: tais olla aikoja sitten. Ite en ainakaan muista :D Mimmoinen se oli?
CoDeR laitoin tulemaan
joo kiitos! ... toi on vaan (ainakin noin ulkosin puolin) aika hiton monimutkanen mun aivoille mut pitää nyt tutustuu siihen. :D ... ja sellasta vielä kerran kun mulla se ei toimi vaikka sen periaatteessa pitäis. Tämä:
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim msg as String Winsock1.GetData msg ' vaihtoehto 1 If msg = "lopeta" Then End End If ' vaihtoehto 2 Select Case msg Case msg = "lopeta" End End Select End Sub
...niin mitä mä teen väärin?
kokeilin tota kyllä sillain että se avais cd aseman (mutta ei toiminu sekään :) mutta laitoin nyt tähän tän ku se oli lyhyempi... sen ei pitäs vaikuttaa ku mul on tavallinen ja dvd asema ni en keksi mitään.. se ei siis vaan avaa sitä cd-asemaa..
Ainakin sisennät väärin :D No ei, toi näyttää vaan rumalta. Case-lauseke ei mene noin. Oikea on Case "lopeta". Ja katso että sendit oikein sillä toisella.
Pojat - msdn on edelleen olemassa: http://msdn.microsoft.com/library/default.asp?
Aihe on jo aika vanha, joten et voi enää vastata siihen.