vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: Server / Client mittels WinSock 
Autor: Snof
Datum: 02.03.03 16:25

Hi huhn

Proggen mit WinSock ist eigentlich ganz einfach. Auch das verwalten mehrerer Client.

Nun gut. Gib dem Winsock-Control des Servers den Index 0 (WICHTIG). Der Code für den Server muss dann etwa so aussehen:
Option Explicit
 
'Gibt anzahl der Clients an
Private iConnectedClients As Integer
 
Private Sub Form_Load()
 
 'Port 12345 soll abgehört werden
  Winsock(0).LocalPort = 12345
 
 'Abhör-Vorgang starten
  Winsock(0).Listen
 
End Sub
 
Private Sub cmdServerStarten_Click()
 
 'Port 12345 soll abgehört werden
  Winsock(0).LocalPort = 12345
 
 'Abhör-Vorgang starten
  Winsock(0).Listen
 
End Sub
 
 
Private Sub cmdServerBeenden_Click()
Dim i As Integer
Dim W As Winsock
 
 For Each W In Winsock
  With W
 
   If .State = sckConnected Then
    .Tag = "send"
    .SendData "Server wird beendet"
 
    Do While .Tag <> vbNullString
     DoEvents
    Loop
 
    .Close
    Unload W
   End If
  End With
  DoEvents
 Next W
 
 Winsock(0).Close
 iConnectedUsers = 0
End Sub
 
Private Sub Winsock_SendComplete(Index As Integer)
 Winsock(Index).Tag = vbNullString
End Sub
 
'Wird ausgelösst, wenn ein neur Client connectet
Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As Long)
 
 If Index = 0 Then
  iConnectedClients = iConnectedClients + 1
 
' Lädt ein neues Winsock-Control und Konfiguriert es
  Load Winsock(iConnectedClients)
  Winsock(iConnectedClients).LocalPort = 12345
  Winsock(iConnectedClients).Accept requestID
 
 End If
End Sub
 
'Wird ausgelößt, wenn Daten empfangen werden
Private Sub Winsock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim sDaten As String
 
'sDaten wird der empfangene Ausdruck zugewiesen
 Winsock(Index).GetData sDaten, vbString
 
  'Auswertung der Daten
 
 End With
End Sub
 
'Wird ausgelößt, wenn ein Client die Verbindung trennt
Private Sub Winsock_Close(Index As Integer)
 
 Winsock(Index).Close
 Unload Winsock(Index)
 
 iConnectedClients = iConnectedClients - 1
 
End Sub
Für den Client ist das nätürlich nich so umfangreich. Du solltest aber auf jeden Fall einen Timer einbauen, der in regelmäßigen Abständen die Verbindung überprüft.
Private Sub Form_Load()
 Winsock.Connect "1.2.3.4", 12345
End Sub
 
Private Sub Timer_Timer()
 If Not (Winsock.State = sckConnected) Then
'Es besteht keine Verbindung
 
  Winsock.Close
  Winsock.Connect "1.2.3.4", 12345
 
 End If
End Sub
 
Private Sub VerbindungAufbauen()
 Winsock.Connect "1.2.3.4", 12345
 Timer.Enabled = True
End Sub
 
Private Sub VerbindungTrennen()
 Winsock.Close
 Timer.Enabled = False
End Sub


demn?chst Online: SnofWare.de
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Server / Client mittels WinSock522huhn02.03.03 12:56
Re: Server / Client mittels WinSock510Snof02.03.03 16:25
Re: Server / Client mittels WinSock303huhn03.03.03 07:52
Nö, warum?343Snof03.03.03 15:22
Re: Nö, warum?295huhn04.03.03 08:03
Re: Nö, warum?346huhn05.03.03 07:16

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel