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
Hienoa. Toimiiko tää verkossakin, ettei tarvii lähiverkkoa?
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.
Toimiva vinkki, tarpeeseenkin vielä ;))
Toimii se intternetmaailmassakin kunhan ei ole reititintä/palomuuria/tms blockaamassa. Mun chatti toimii noin.
Miten voisin ottaa monta yhteyttä samaan aikaan samaan porttiin?
Hmmm, täytynee katsoa tarkemmin paremalla ajalla, mutta hyvää työtä! ;)
Hienoa! Tälläistä olen etsinyt!
Vieläkun joku selvittäisi miten voi samaan porttiin ottaa useita yhteyksiä.
Useat yhteydet on kans yhtä helppoja:
Laitta WinSock indexiin 0 ja aina ku tulee yhteys niin lisätään indexsi yhdellä.
Winsock1.Index = 1
Tollain mulla ainakin valittaa kokoajan jotain :(
"Wrong number of arguments of invalid property assigment"
Niin miten sitä indexiä pitäis vaihtaa? ;D
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
Ei prkl ;D mä saa millään toimii ;D ei joku viittis pistää koodinpätkää? ;D
Joo ;D mut en ;D ainakaan mä ;D
saako mitenkään laitettuu silleen että vois lähettää tiedostoja ?
´miatä löydän tohon ton winsocki objektin?
löyät sen project-> components...->Microsoft winsock 6.0 ja paina ruksia.
Voiko RemoteHosti olla myös domain-nimi, jos sellainen on hankittu?
Voi
Ei tässä muutakaan voi sanoa, kun että hienoa työtä :D ....
mitä toi koodi itsessään itte asiassa tekee? (vai tekeekö mitään)
mist tollasen winsock 1 :kkösen saa :S ... mul ei oo sellast siin sivu valikos :S
oho xD...se selviiki tost ylempää :P
ei satu löytymään wisockkii... mites tehään (mulla on VB6 pro)
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?
ei löydy winsockii mulla on VB 2005 Express Edition, ei rekisteröity
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.