Avatar billede specialty Nybegynder
11. maj 2001 - 22:31 Der er 7 kommentarer og
2 løsninger

Flere connections til en Winsock!

Hej Eksperter...

Jeg sidder og arbejder på en chat... Men det skal ikke bare være en normal chat men en hvor der er mulighed for flere connections... Jeg vil så gerne lave et server program som alle de andre clients skal connecte til... Jeg har prøvet at lave det med Winsock men den vil vist ikke have mere end en client af gangen! Hvordan kan jeg så gøre det og er der en really smart måde at gøre det på????

Specialty...
Avatar billede stigc Nybegynder
11. maj 2001 - 22:35 #1
Her skal du nok have fat i nogen tråde.
Avatar billede specialty Nybegynder
11. maj 2001 - 22:40 #2
tråde??????????????????????
Avatar billede martin_zeus Nybegynder
11. maj 2001 - 23:39 #3
Jeg har øvet mig lidt med det samme som du er ved.
Jeg bruger MS visual basic 6.0, bare så du ved det!. Jeg laver en winsock control og giver den index = 0

Så skal du lave noget kode værk der ligner dette

Form_load
intWinsock = 0
intPort = 1234 \'Her står dit port nummer, og du kan i hvert fald vælge fra 0001 -> 9000
end sub

winsock_connectionrequest(index as integer,byval RequestID)
If winsock(intWinsock).state = 2 then
intWinsock = intWinsock + 1
Load Winsock(intWinsock)
Winsock(intWinsock).localPort = port
Winsock(intWinsock).accept RequestID
else
Winsock(intWinsock).localport = port
winsock(intWinsock).accept RequestID
end if
end sub

Du skal nok redigere lidt med stavefejl osv.

Hvis du så vil sende en admin besked, til alle.

CommandButton_click
for I = 0 to intWinsock
winsock(I).senddata \"Admin: \" & text1.text
next
end sub

Det var hvad jeg sådan lige kan huske, fordi jeg har en masse andet og lave bla. hjemmeside i ASP, og C++. og jeg er ved min eksamen. Hvis du får det til at virke vil jeg gerne høre mere fra dig. min email er martin.molle@get2net.dk

Mvh. Martin
Avatar billede martin_zeus Nybegynder
11. maj 2001 - 23:47 #4
Mig igen!
Glemte lige at skrive at det du skal bruge, er at lave en Textbox, en knap og en winsock control til server. du kan vel lave en klient. Og det med det Winsock(intWinsock).state = 2 det skulle gerne betyde at den winsock er optaget. Du kan selv lige tjekke det ved at lave en hurtig ting.
Du skal bare lave en winsock control, en label så skal du skrive noget lignene det her:
form_load()
winsock.localport = 1234
winsock.Listen
label.caption = sock.state
end sub
Dette ovenståene eks. skulle gerne vise et \'2\' i labellen.

Og til Det første jeg skrev skal der lige laves noget om:
Form_load
intWinsock = 0
intPort = 1234 \'Her står dit port nummer, og du kan i hvert fald vælge fra 0001 -> 9000
end sub
til:
Form_load
intWinsock = 0
intPort = 1234 \'Her står dit port nummer, og du
kan i hvert fald vælge fra 0001 -> 9000
winsock(intWinsock).listen
end sub

Mvh. Martin
Avatar billede martin_zeus Nybegynder
12. maj 2001 - 00:04 #5
Lad være med at skrive Winsock(intWinsock).state = 2
Du skal bruge
Winsock(intWinsock).state = sckConnected
:)
Avatar billede specialty Nybegynder
12. maj 2001 - 11:33 #6
Hej Martin...

Det virker sq ik.... Min client går TOTALT i stå når den prøver at connecte! Har du en løsning på det???

Specialty...
Avatar billede martin_zeus Nybegynder
12. maj 2001 - 21:08 #7
Det er jeg ked af at høre. Jeg sad også og prøvede men det virkede heller ikke, men det var cirka sådan at min server så engang og virkede. Det er i hvertfald den retning man skal.
Men hvis du kan vente så kan jeg sende dig det når jeg har fået noget til at virke, det tager nok noget tid, for jeg skal snart til mine mundtlige eksamenner. Hvis du kan vente så smid lige din email eller ICQ til mig på martin.molle@get2net.dk
Avatar billede specialty Nybegynder
19. august 2001 - 11:09 #8
jeg lukker spørgsmålet...
Avatar billede kantoraza Nybegynder
16. oktober 2002 - 20:40 #9
Må jeg lige komme med en kommentar?

Jeg ser ikke logiken i at bruge flere winsockker, altså arrays/indexes. Jeg bruger bare arrays i variabler!

Fx hver gang en bruger logger sig ind på serveren, så bliver en variabel en størrer:

AntalKlienter = AntalKlienter + 1
Klient(AntalKlienter) = Winsock.RemoteHost

Og hver gang serveren skal sende en besked, så laver man bare en for next løkke:

For n = 0 to antalklienter
  winsock.remotehost = klient(n)
  winsock.senddata "Du modtager en besked"
next n

-------------------

Jeg synes at denne måde er nemmere!

Jeg ved ikke om jeg har overset noget, men jeg har lavet adskillige programmer på denne måde.

Se evt.

www.friserverplads.dk/northcode/opgaver/chat.zip

Mvh.
NorthCode
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester