bassdriver
Goto Top

Per Visual Basic 2010 Server und Client erstellen und komunizieren lassen

Server und Client komunizieren lassen und per Client auf eine Datenbank auf dem Server zugreifen.

Hallo zusammen,

leider komme ich überhaupt nicht weiter hab seit tagen gegoogelt usw. .

Ich möchte gerne einen Server und einen Clienten erstellen die zusammen komunizieren.

So soll es funktionieren:

Jemand kann sich per Client auf dem Server einloggen die Logindaten sollen per Datenbank vom Server abgerufen werden.
Desweiteren soll der Client Programme auf dem Server Programme starten und stoppen können.
Auf dem Server können Benutzer hinzugefügt und wieder gelöscht werden.

Meine Fragen:

- Wie bekomme ich es hin das der Client mit dem Server komuniziert?
- Wie kann ich dort per Datenbank Benutzer hinzufügen und wieder löschen?


Vielen Dank im vorraus ;)


MFG Bassdriver

Content-ID: 149282

Url: https://administrator.de/contentid/149282

Ausgedruckt am: 26.11.2024 um 16:11 Uhr

HyP3r92
HyP3r92 18.08.2010 um 18:26:01 Uhr
Goto Top
- Wie bekomme ich es hin das der Client mit dem Server komuniziert?

Ich weiß nicht ob mein Vorschlag die beste Idee ist meine Stragie wäre folgende:

Du nutzt auf dem Client die TcpClient Klasse sowie auf dem Server (das Projekt der Serversoftware erstellst du am besten nicht als normales Projekt sondern als Dienst) die TcpListener Klasse.

Als zweischen Schritt musst du dir ein Protokoll die überlegen. Das ist eine reine Design sache und die kannst du machen wie du willst:

Bei dem Logonvorgang verbindet sich der Client an einen beliebigen Port auf dem Server (wo er natürlcih mit dem Listener hört) und sendet folgende Daten

15HyP3r8Passwort

Die eins steht für den Typ der dieses mal ein Logon ist. Die fünf gibt an wie lange der nachfolgende Benutzername ist usw. Solch aufbauen musst du für jeden Vorgang dir einfallen lassen (Logon/Logon OK, Logout/Logout OK, List Software, Start Software, Stop Software usw.)

Nun musst du nur noch eben dir eine GUI Zaubern und diese mit füllen mit den Informationen füllen die durch die ganze TcpClient geschichte gesammelt hast. Im Optimalfall programmierst du dir eine Klasse die eine Zwischenschicht darstelltl. Zwischen GUI und der TcpClient klasse.

Als Datenbank die du auf Serverseite verwenden willst kannst du z.B. Microsoft SQL oder Microsoft Access Datenbankdateien verwenden.

- Wie kann ich dort per Datenbank Benutzer hinzufügen und wieder löschen?

Für die Administration (Benutzer hinzufügen und löschen) schreibst du das gleiche wie für den Client nur sendest andere Kommandos (wie oben gennant) an den Server (listener).

Wenn du dir ein bisschen Programmieren sparen willst könntest du z.B. die Micrsoft Access Datenbankdatei variante anstreben und dann die Benutzer über Access aus der Datenbank löschen.

mfg
HyP3r

€: Hier noch ein paar links:

TcpClient Klasse: http://msdn.microsoft.com/de-de/library/system.net.sockets.tcpclient%28 ...
TcpListener Klasse: http://msdn.microsoft.com/de-de/library/system.net.sockets.tcplistener% ...
(jeweils ein gutes Copy&Paste beispiel)
Microsoft Access und VB.NET: http://www.startvbdotnet.com/ado/msaccess.aspx
Einführung in SQL um die Datenbank zu füllen und zu lesen: http://de.wikibooks.org/wiki/Einf%C3%BChrung_in_SQL
Bassdriver
Bassdriver 01.09.2010 um 11:55:02 Uhr
Goto Top
Hallo zusammen,

Vielen Dank erstmal für die hilfe ;)

den Server und Clienten hab ich jetzt mit Winsock geregelt,
allerdings hab ich mit den Login noch kleine Probleme.
Habe ein Script gefunden und angepasst:

Dim conn As New OleDbConnection
Dim myConnectionString As String
Dim PW As String
Dim Nickname As String
PW = txtPasswort.Text.Replace("'", "")
Nickname = txtBenutzername.Text.Replace("'", "")
myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=C:/SCC/scc.mdb"
conn.ConnectionString = myConnectionString
Try
conn.Open()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Dim myAdapter As New OleDbDataAdapter
Dim sqlquery = "SELECT personalnummer, passwort FROM s_login Where personalnummer='" & Nickname & "' and passwort='" & PW & "'"
Dim myCommand As New OleDbCommand
myCommand.Connection = conn
myCommand.CommandText = sqlquery
myAdapter.SelectCommand = myCommand
Dim myData As OleDbDataReader
myData = myCommand.ExecuteReader()

If myData.HasRows = 0 Then
MsgBox("Falsche Logindaten!", MsgBoxStyle.Information, " Login...!")
Else

myData.Close()
conn.Close()
Menü.Visible = True

allerdings zeigt er mir immer ein fehler an bei dieser Zeiler:

myData = myCommand.ExecuteReader()

Der Fehler:
OleDBExeption wurde nicht behandelt

Muss ich für das OleDBex..... einen String machen oder was soll das bedeuten?

MFG Bassdriver