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.
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..?
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.
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ää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.