Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: TCP/IP keskustelu

Sivun loppuun

viljami [03.01.2004 19:56:04]

#

Laitoin tämän koodin tänne näkösälle, jos joku muukin on kiinnostunut.

Eli tehdään kaksi ohjelmaa, Server ja Client.

Client Formiin: Winsock1, Command1, Text1 ja Text2. IP-osoitteeksi pitää laittaa "server" koneen IP-osoite.

Server Formiin: Winsock1, Command1, Text1 ja Text2.

Sitten kun serveri on käynnissä niin clientillä voi ottaa yhteyttä serveriin jolloin serverin ja clientin väliin saadaan kaksisuuntainen liikenne

Client formiin

Option Explicit

Private Sub Command1_Click()
winsock1.SendData Text1.Text
End Sub

Private Sub Form_Load()
winsock1.RemoteHost = "100.100.100.100" 'Serverin IP-osoite
If winsock1.RemoteHost = "" Then
winsock1.RemoteHost = "localhost"
End If
winsock1.RemotePort = 3456
winsock1.Connect
End Sub
Private Sub Form_Unload(Cancel As Integer)
winsock1.Close
End Sub

Private Sub winsock1_Close()
winsock1.Close
 End Sub
Private Sub winsock1_DataArrival(ByVal bytesTotal As Long)
Dim msg As String
winsock1.GetData msg
Text2.Text = msg
End Sub

Private Sub winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox "Serveriä ei löydy antamastasi osoitteesta, se ei ehkä ole päällä"
End
End Sub

Server formiin

Option Explicit

Private Sub Command1_Click()
winsock1.SendData Text1.Text
End Sub

Private Sub Form_Load()
    winsock1.LocalPort = 3456
    winsock1.Listen
End Sub

Private Sub Form_Unload(Cancel As Integer)
    winsock1.Close
End Sub

Private Sub winsock1_Close()
    winsock1.Close
    winsock1.Listen
End Sub

Private Sub winsock1_ConnectionRequest(ByVal requestID As Long)
    If winsock1.State <> sckClosed Then
        winsock1.Close
    End If
    winsock1.Accept requestID
End Sub

Private Sub winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim msg As String
    winsock1.GetData msg
    Text2.Text = msg
End Sub

Private Sub winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    MsgBox Source & ": " & Description, vbExclamation, "TCP/IP Error"
End Sub

Createman [04.01.2004 13:01:34]

#

Hienoa. Toimiiko tää verkossakin, ettei tarvii lähiverkkoa?

viljami [04.01.2004 13:46:51]

#

En osaa sanoa, en ole sitä sen enempää testaillut. Itselläni käytössä ainoastaa lähiverkossa. Voi muuten testata samalla tietokoneella, eli siis samalla tietokoneella on päällä server ja client.

jrantala [04.01.2004 23:25:08]

#

Toimiva vinkki, tarpeeseenkin vielä ;))

sooda [05.01.2004 08:56:23]

#

Toimii se intternetmaailmassakin kunhan ei ole reititintä/palomuuria/tms blockaamassa. Mun chatti toimii noin.

jrantala [05.01.2004 14:38:25]

#

Miten voisin ottaa monta yhteyttä samaan aikaan samaan porttiin?

TH [05.01.2004 17:14:01]

#

Hmmm, täytynee katsoa tarkemmin paremalla ajalla, mutta hyvää työtä! ;)

Heikki [05.01.2004 20:54:16]

#

Hienoa! Tälläistä olen etsinyt!

Vieläkun joku selvittäisi miten voi samaan porttiin ottaa useita yhteyksiä.

ZcMander [06.01.2004 12:49:26]

#

Useat yhteydet on kans yhtä helppoja:
Laitta WinSock indexiin 0 ja aina ku tulee yhteys niin lisätään indexsi yhdellä.

jrantala [06.01.2004 22:18:04]

#

Winsock1.Index = 1

Tollain mulla ainakin valittaa kokoajan jotain :(
"Wrong number of arguments of invalid property assigment"

jrantala [07.01.2004 17:44:20]

#

Niin miten sitä indexiä pitäis vaihtaa? ;D

ZcMander [07.01.2004 19:38:22]

#

index 0 ja sitten sitä kasvatetaan yhteyksien mukaan yhdellä. Niin ja uus WS pitää tehä Load käskyllä ja sitten ku se on katkassu yhteye nii unload

jrantala [09.01.2004 17:48:28]

#

Ei prkl ;D mä saa millään toimii ;D ei joku viittis pistää koodinpätkää? ;D

T.M. [13.01.2004 19:17:50]

#

Joo ;D mut en ;D ainakaan mä ;D

make3003 [14.01.2004 15:46:24]

#

saako mitenkään laitettuu silleen että vois lähettää tiedostoja ?

SQ [18.01.2004 14:42:50]

#

´miatä löydän tohon ton winsocki objektin?

killerfox [21.01.2004 19:29:55]

#

löyät sen project-> components...->Microsoft winsock 6.0 ja paina ruksia.

Sharph [22.03.2004 08:07:31]

#

Voiko RemoteHosti olla myös domain-nimi, jos sellainen on hankittu?

Heikki [24.03.2004 17:44:11]

#

Voi

wzw [13.06.2004 06:31:10]

#

Ei tässä muutakaan voi sanoa, kun että hienoa työtä :D ....

CoDeR [17.11.2004 18:37:33]

#

mitä toi koodi itsessään itte asiassa tekee? (vai tekeekö mitään)

darkest [24.03.2005 15:10:35]

#

mist tollasen winsock 1 :kkösen saa :S ... mul ei oo sellast siin sivu valikos :S

darkest [24.03.2005 15:40:38]

#

oho xD...se selviiki tost ylempää :P

eraggo [05.04.2005 16:12:39]

#

ei satu löytymään wisockkii... mites tehään (mulla on VB6 pro)

Jomppes [20.08.2005 20:47:55]

#

saisko tohon silleen et siin on kaks text boxii mihin kirjotetaan ja kun painaa sitä nappulaa se lähettää ne kahelle eri text boxille servun ohjelmaan?

Aloittelija3 [03.02.2006 21:54:47]

#

ei löydy winsockii mulla on VB 2005 Express Edition, ei rekisteröity

kayttaja-4976 [03.03.2006 17:29:06]

#

lainaus:

saisko tohon silleen et siin on kaks text boxii mihin kirjotetaan ja kun painaa sitä nappulaa se lähettää ne kahelle eri text boxille servun ohjelmaan?

Saahan siihen.

Laitat vaan Winsockin lähettämään datan sinne minne haluut. Servu sitten vastaanottaa datat ja kopioi ne textboxeihin.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta