Simpel chat mellem to computere

Tags:    visual-basic
Skrevet af Bruger #2353 @ 19.05.2003

Brug af netværk/Internettet



For at lave multiplayerspil, chatte og andre former for netværks kommunikation, skal du bruge en indbygget kontrol i Windows system. Det du skal bruge er den såkaldte: winsock kontrol.

Du finder den her:




Efterfølgende skal du trykke ”components”.

Nu vil denne skærm dukke op.





Vælg ”Microsoft winsock control”. Tryk ”ok” eller ”anvend”.

Der er nu kommet et nyt objekt i toolboksen - det er winsock kontrollen. Prøv at placere den et tilfældigt sted på formen. Den vil ikke være synlig når programmet køres. Den fungerer ligesom fx en timer.

Klik på den og ændre navnet til ”W”

Gå ind i formens load procedure.

Skriv dette:

Fold kodeboks ind/udKode 


Linje 1. (W.Protocol = sckUDPProtocol)

I denne linje angives protokollen. Du skal ikke uden videre sætte dig ind i dette, bare vend dig til at skrive det.

Linje 2,3. (W.RemotePort = 1000), W.LocalPort = 1000

Her skriver vi til winsock kontrollen, at den port som den skal ”lytte” og sende til skal være 1000. Her kan du skrive et hvilket som helst tal, næsten. Bare mellem 1000 og 10000.

Den lokale port skal så ligeledes være 1000

Linje 4 (W.Bind)

I denne linje fortæller vi winsock at den skal ”lytte” efter indkommende beskeder. Hvis denne linje glemmes, vil winsock kun kunne sende tekster, ikke modtage.


Start



Vi laver det hele i et program. På denne måde kan kun to chatte sammen!


· Opret en textbox, text1
· I denne box skal de indkommende beskeder dukke op i
· Opret endnu en textbox, text2
· I denne kommer Ip adressen til at stå i
· Opret textbox3, text3
· I denne box kan du skrive beskeder til den anden.
Det hele skal se sådan ud.





Det er meget vigtigt at alle navnene er de samme, ellers vil programmet ikke virke.


Variabler



Kopier denne variabel ind i formens generel procedure:

Public SendTil As String


----Form Load----

Kopier denne kode ind i form_load proceduren.

Fold kodeboks ind/udKode 


Sær denne kode ind i Winsock DataArrival:

Fold kodeboks ind/udKode 


og Command1_click

Fold kodeboks ind/udKode 


[k]Hvordan køres programmet?[/k]

Du kører programmet ved fx at have to computere koblet sammen. Det er faktisk ofte at selvom man ikke kan få netværket til at virke i Windows, så virker det i denne slags programmer.

Du kan også have to computere på Internettet, det er samme princip.


Programmerne køres sådan.

Du skal på forhånd kende din modtagers ipadresse - skriv derefter ip-adressen i startfeltet. Prøv programmet på dine egen computer(e). Det vil helt sikkert give dig inspiration til chatprogrammer, multiplayerprogrammer o.l.

Held og lykke!

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (44)

User
Bruger #2165 @ 19.05.03 19:20
Jeg har ikke læst artiklen endnu, men den kommer som kaldet!!!
Jeg er lige sat til at lave en chat i går og har knoklet røven ud af bukserne på at lave den... Den virker næsten, men der mangler stadig lidt. Måske kan din artikel forklare mig hvad det er jeg mangler... Vi for se... læser nu!
User
Bruger #2165 @ 19.05.03 19:26
Dohh...
Hvor er jeg dog dum! Jeg havde glemt *.Bind!!!
Tak for det... Du får et flot 5 tal!

PS. Min chat er bedre end din :D
User
Bruger #3009 @ 19.05.03 20:58
det ville være rart hvis der var mulighed for at downloade det færdige program :)
User
Bruger #2855 @ 20.05.03 09:40
det er en fed artikel og jeg har fået meget brug for den for jeg er gået igangmed datakomunikation hilsen rune :D
User
Bruger #789 @ 21.05.03 11:19
Virker meget godt, men lige et tip:
Brug goto så lidt som muligt da goto gør koden forvirende at læse
User
Bruger #2353 @ 22.05.03 08:31
Tak skal i have. Jeg haren meget mere avanceret chat klar på min computer. Den muliggører admin- og brugerfunktioner. Jeg overvejer at uploade den hertil. Der er også mulighed for skit mellem forkellige chatrum, og oprettelse af egne chatrum.

Jeg ser frem til at uploade den.

/Rasmus
User
Bruger #3936 @ 24.05.03 21:49
Tja, den er ikke så advanceret.
Men det er da næsten en fordel her på udvikleren, så kan folk selv bestemme hvad de vil udvide den med...
User
Bruger #2353 @ 26.05.03 10:24
Præcis!.

Den chat, som jeg uploader senere, er meget avanceret. - Så er der lidt for en hver. hehe
User
Bruger #2353 @ 28.05.03 12:14
Davs alle sammen. Nu er chatten klar til at blive hentet. Der er vedlagt et serverprogram og et klientprogram. God fornøjelse!

Hent det her:
http://www.dll.1go.dk/chat.zip

Mvh. Rasmus H
User
Bruger #2833 @ 04.08.03 15:39
Cool´, sådan en har jeg rodet med mange gange før, uden held :o) Tak skal du have
User
Bruger #2353 @ 08.08.03 16:53
så lidt...
User
Bruger #3826 @ 24.08.03 14:23
Jamen, det er da en dejlig artikel, men hva gør man når winsock ikke er installeret??

fejl:
component 'mswinsck.ocx' or one of it's dependencies not correctly registered: a file is missing or invalid
User
Bruger #2353 @ 06.09.03 09:07
Hej..

Det problem kender jeg godt. Jeg plejer at vedlægge winsockkontrollen, fra min egen computer, ved det færdige progam. Når programmet køres kopierer jeg kontrollen ind i Windows system mappen:

Men det er selvfølgelig et problem, hvis du slet ikke har kontrollen. Jeg kan sende den til digm og så kan du bare kopiere den ind i systemmappen.

Hvis du ønsker den så kontakt mig:

rasmuss@jubiimail.dk

mvh. Rasmus - member of VISONIC Crowd
User
Bruger #4578 @ 13.10.03 16:27
Hvad er formens generel procedure
da jeg er noob
User
Bruger #4578 @ 13.10.03 16:36
Hvad er formens generel procedure
da jeg er noob
User
Bruger #4578 @ 13.10.03 16:37
Hvad er formens generel procedure
da jeg er noob
User
Bruger #4578 @ 13.10.03 16:37
Hvad er formens generel procedure
da jeg er noob
User
Bruger #4578 @ 19.10.03 22:58
Hey din side virker har du skiftet adresse
User
Bruger #4578 @ 21.10.03 18:41
undskyld men jeg glæmte at logge ud så der er en der har skrevet det her lort fra min bruger
User
Bruger #4568 @ 12.11.03 20:15
Når jeg prøver at lave winsock svarer den at den ikke har den korrekte licens.
User
Bruger #4757 @ 23.11.03 02:09
Hejsa.
Jeg har været ved at lave denne chat som du så flot har beskrevet i din artikel, men jeg bliver ved med at få den samme fejl.. nu skal det siges at det er første gang jeg prøver vb så jeg har næsten ingen forstand på det, men fejlen ser sådan ud http://www.frip.dk/aloneiz/
User
Bruger #4854 @ 07.12.03 01:08
Nu ved jeg godt at overskriften lyder "simpel chat mellem to computere" men ville man godt kunne lave det sådan at der f.eks er en der hoster en chat, og så kan fire fem andre joine den chat via den ip?
User
Bruger #4915 @ 16.12.03 13:45
du er en skat, det skal jeg prøve!!!
User
Bruger #2353 @ 18.12.03 12:28
>>paw hansen

Den linje der er markeret med rød skal tilhøre den ovenstående linje så virker det. jeg tror det er dig der er kommet til at trykke forkert?
User
Bruger #2353 @ 18.12.03 12:29
>>Anders Friis

Det kan godt være, at jeg vil uploade en mere avanceret guide til netværkskommunikation, nu da jeg har modtaget så meget positiv respons.
Det er nemlig muligt, men det kræver tid at udvikle. Netværkskommunikation er noget af det mest tidskrævende efter min mening. To computere er også en nødvendighed.
User
Bruger #2702 @ 31.12.03 01:30
Udmærket artikel - måske du burde gå ind på brugen af RFCs, for eksempel til udvikling af et FTP eller IRC program? Det er meget rart at lære hvordan man via winsock kan lave ting baseret på foruddefinerede protocoller...
User
Bruger #2353 @ 02.01.04 21:43
Det kunne være...

Jeg er på nuværende tidspunkt igang med en nøjagtig kopi af Sid Meiers CivNet. Version 1. Jeg forventer at uploade den hertil. Den kan måske give stor inspiration til winsockprogrammering for "lettere øvede".

Tak for de positive ord N30 og jer andre!
User
Bruger #65 @ 12.01.04 21:42
Jeg kan ikke hente
chat.zip fra din hjemmeside!

Mvh.
Thomas Christensen
User
Bruger #4862 @ 26.01.04 16:03
er det muligt at i kunne lave artikler om at lave nogle spil ?? eller lave ex fortrukne med en homemade webbrowser?
User
Bruger #5043 @ 22.02.04 19:33
hej jeg har et problem med den når jeg vil trykke run. det ser sådan her ud. http://supreme-saiyan.dk/visual/1.jpg
HJÆLP MIG PLZ
User
Bruger #5043 @ 22.02.04 19:34
jeg er nemlig lige startet på VB og vil gerne have hjælp.
User
Bruger #5043 @ 22.02.04 19:52
hej jeg har et problem med den når jeg vil trykke run. det ser sådan her ud. http://supreme-saiyan.dk/visual/1.jpg
HJÆLP MIG PLZ
User
Bruger #5472 @ 22.03.04 18:37
Kan man ikke lave følgende funktion?
Når modparten går ud af programmet (logger af chatten), kommer der en MsgBox op, som informerer om dette... Efter MsgBox'en, skal man så kunne vælge IP igen...
Kan det lade sig gøre?

Ellers mange tak for en god artikel :)
User
Bruger #1626 @ 06.04.04 15:19
Ellers iorden Guide... Der mangler bare "_" :(
Men det skal stå som under her :)

If SendTil = "" Then: MsgBox "Programmet kan ikke køre uden en remote ip adresse!" & _

User
Bruger #2353 @ 13.04.04 08:35
- Netop Jesper.

- Andi, Ja det er muligt at lave en webbrowser. Jeg henviser til www.pscode.com, søg efter browser i toppen.

- Hvis i er interesseret i en mere avanceret chat, så burde i læse min nyeste artikel: Avanceret chat mellem flere computere.

Mvh. Rasmus
User
Bruger #5992 @ 17.06.04 19:10
Jeg er helt ny inden for VB. Kunne rigtig godt tænke mig at lave et chat program så jeg prøvede den her... og det hele ser ud til at virke bortset fra den der: Public SendTil as String.
Hvor er det den skal sættes ind?
User
Bruger #5992 @ 17.06.04 19:57
Lige en ting mere... har sendt et program jeg lavede hvor jeg brugte Winsock Control. Han kan ikke åbne det... er der nogen der ved hvorfor?
User
Bruger #5992 @ 17.06.04 19:57
Sendt det til en ven altså... undskyld
User
Bruger #5563 @ 28.07.04 12:52
Jeg bruger visual studio, og der harf jeg svært ved at finde WinSock controlen.
User
Bruger #2353 @ 08.01.05 11:18
Sigurd, SenduM: Ja, i mangler begge Winsock... Det forholder sig sådan, at kompiler man et program og sender det til fx en kammerat, så bliver han nødt til også at have Winsock kontrollen OG de andre systemfiler, der får programmet til at virke. Visual Basic baserer sig på Windows og dermed også på de filer, der er indbygget i Windows. Og da Visual Basic hele tiden bliver opdateret eller udvidet, ligger disse filer ikke som standard i Windows systemmappen.
Men der er hjælp at finde. Når man er færdig med en applikation, skal man simpelthen bare konvertere den til en installationsfil. Således, at "kammeraten" eller hvem det nu måtte være, skal installere programmet gennem et installationsprogram først. Og det er meget, meget enkelt. I Visual Basic mappen ligger der et program, der hedder noget i retningen af "Wizzard", og det kan konvertere din exe fil til en installationsfil. Denne sender man til "kammeraten". Men har man ikke Winsock på sin egen computer, skal man selvfølgelig først have fat i det.

Jeg har uploadet Winsock-kontrollen her:
www.mcr-music.dk/rasmus/MSWINSCK.OCX

Den skal downloades og placeres i Windows stystemmappen. (/windows/system32/). Derefter kan den findes som artilken beskriver.

Held og lykke!
User
Bruger #11113 @ 07.01.07 20:18
:Dfed artikel:D
User
Bruger #11603 @ 14.04.07 10:33
rigtig lækker artikel

MEGET STORT 5 TAL:P
User
Bruger #11603 @ 14.04.07 10:33
rigtig lækker artikel

MEGET STORT 5 TAL:P
User
Bruger #702 @ 03.01.09 17:08
Lille men lide til er en god start.

hilsen Rene
Du skal være logget ind for at skrive en kommentar.
t