Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Vb Lanissa

viljami [23.11.2003 14:11:44]

#

Niin pitäisi saada tehtyä vb:llä "etähallinta" tyyppinen ohjelma. Tarkoituksenani olisi kytkeä koneen1 lpt portiin muutampi laite, ja viedä kone1 piiloon. Nyt voisin koneella2 joka on tässä samassa verkossa ohjata piilossa olevan koneen lpt-releitä ja saisin koneen2 näytölle vahvistuksen että kone1 on kytkenyt releen päälle. Eli voiko kaksi vbllä tehtyä ohjelmaa saada keskustelemaan verkon läpi ja jos voi niin mitenkähän se olisi mahdollista. Tämä ohjelmahan on tavallaa chat ohjelma.

Teme [24.11.2003 13:13:29]

#

Kyllä se onnistuu, tosta LPT-portin välisestä keskustelusta en ole tietoinen, kuinka helppo/vaikea se on tehdä. Tarvitset clientin, joka lähettää pyynnön koneelle 1 ja samaiseen clienttiin ominaisuuden, joka vastaanottaa dataa. Sitten koneelle 1 tarvitsee tehdä serveri, joka tarkistaa releiden tilan ja niiden mukaan lähettää dataa clientille.
Client analysoi serverin lähettämän datan ja informoi käyttäjää. Helpoiten se kaiketi onnistuisi lähiverkkoyhteyden kanssa..?

viljami [24.11.2003 17:10:02]

#

Käytössäni on kyllä se lähiverkko yhteys. Rele ohjaus ongelman olen hoitanut se on nouproblem. Tämä server ja client ongelma minulla on hiukan hämäränpeitossa. Sitten viellä sen serveri/client ohjelman pitäis tietää mille koneelle se lähettää tietoa, koska tässä workgroupissa on muitakin koneita. Sitten jos/kun tänne on tulossa koodia niin mahdollisimman yksinkertaisesti.

viljami [25.11.2003 11:42:57]

#

Joo Löysin tähän vastauksen aikani googletettua, sitte editointi käyntiin että ohjelmasta tulisi mahdollisimman yksinkertainen, josta sitä on sitten taas helppo lähteä rakentamaan. Laitoin tämän koodin tänne näkösälle, jos joku muukin on kiinnostunut.

Eli tehdään Visual Basic:llä kaksi ohjelmaa, Server ja Client.


Client Formiin: Winsock1, Command1, Text1 ja Text2
Ja koodiksi seuraava, IP-osoite pitää muuttaa, sen mukaan mikä on "server" koneen ip numero.

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

Sitten serveri Formiin tehdään myös Winsock1, Command1, Text1 ja Text2. Ja koodiksi seuraava

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

Tuossa tämä ohjelma sitten on kaikessa yksinkertaisuudessaan, tai ainakin melkein. Sitten serveri ohjelma pitää laittaa ensin käyntiin, ja sitten clientillä liitytään siihen. Mikä nyt on todennäköisesti aika selvää.

Vastaus

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

Tietoa sivustosta