Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: kakinets en 31 Mayo 2006, 01:23 am



Título: Para que sirven estos metodos en winsock
Publicado por: kakinets en 31 Mayo 2006, 01:23 am
Hola a todo ayer boludiando encontre estos metodos que no tengo la placida idea para que sirven...

Citar
Winsock.Item
Winsock.LBound
Winsock.UBound
 Winsock.Count

Tambien encontra una funcion nueva que no se para que es
Citar
load

    por ahora es eso nomas....
 Saludo a todo los chicos del Foro y el Equipo de ElHacker.net
                      KakiNets


Título: Re: Para que sirven estos metodos en winsock
Publicado por: skapunky en 31 Mayo 2006, 23:47 pm
Citar
Winsock.Count

Mira, este sirve para contar el numero de controles que tienes en la matriz... pa que entiendas, si tienes un cliente por ejemplo com muchas conexiones y las tienes controladas con una matriz de winsock. winsock.count podras manejar todo el numero de conexiones hechas con la matriz del control winsock que tengas creada.

Aqui u ejemplo de un cliente de chat donde lo usan.

Código:
Option Explicit

Dim boolServer As Boolean

Private Sub cmdClient_Click()
    ' Als Client identifizieren und die Möglichkeiten vorgeben
    boolServer = False
    cmdServer.Enabled = False
    cmdClient.Enabled = False
    cmdGo.Enabled = True
End Sub

Private Sub cmdGo_Click()
    Dim I As Integer
    ' Loge ich mich gerade ein ?
   
    If cmdGo.Caption = "Go" Then
        ' Erst mal die Einstellungen eifrieren
        txtNick.Enabled = False
        txtHostIP.Enabled = False
        txtPort.Enabled = False
        cmdGo.Caption = "Stop"
       
        ' Bin ich Server ?
        If boolServer = True Then
            WinSock(0).LocalPort = txtPort.Text
            WinSock(0).Listen
            stBar.SimpleText = "Status: Listening"
        Else
            WinSock(0).RemotePort = txtPort.Text
            WinSock(0).RemoteHost = txtHostIP.Text
            WinSock(0).Connect
            stBar.SimpleText = "Status: Connecting to " &  _
            txtHostIP.Text & ":" & txtPort.Text
        End If
       
       
    ' Ich logge mich gerade aus
    Else
        ' Bin ich Server ?
        If boolServer = True Then
            ' Erst mal alle Verbindungen schließen und unnötige 
' WinSocks entladen
            For I = 1 To WinSock.Count - 1
                WinSock(I).Close
                Unload WinSock(I)
            Next I
        Else
            WinSock(0).Close
        End If
       
        ' Jetzt wieder alles in den Urzustand versetzen
        txtNick.Enabled = True
        txtPort.Enabled = True
        txtHostIP.Enabled = True
        cmdGo.Caption = "Go"
        cmdGo.Enabled = False
        cmdClient.Enabled = True
        cmdServer.Enabled = True
        stBar.SimpleText = "Status: Offline"
    End If
End Sub

Private Sub cmdSend_Click()
Dim strMessage As String
   
    strMessage = "{" & txtNick.Text & "}:" & rtfSend.Text
   
    ' Bin ich Server
    If boolServer = True Then
        SendMessage strMessage
        rftReceive.Text = rftReceive.Text & vbCrLf & strMessage
    Else
        If WinSock(0).State = 7 Then WinSock(0).SendData strMessage
    End If
   
    rtfSend.Text = ""
   
End Sub

Private Sub cmdServer_Click()
   
    ' Erst mal die Buttons ändern
    cmdClient.Enabled = False
    cmdGo.Enabled = True
    cmdServer.Enabled = False
   
    ' Jetzt bin ich Server
    boolServer = True
End Sub

Private Sub WinSock_Close(Index As Integer)
    If Index = "0" Then
        stBar.SimpleText = "Status: Offline"
    Else
        stBar = "Status: Verbunden mit " & WinSock.Count - 1 & " " & _
        "Client(s)."
    End If
End Sub

Private Sub WinSock_Connect(Index As Integer)
   
    ' Jetzt soll man ja wissen, daß man drinnen ist
    stBar.SimpleText = "Status: Connected to " & txtHostIP.Text & ":"  _
    & txtPort.Text
End Sub

Private Sub WinSock_ConnectionRequest(Index As Integer, ByVal  _
requestID As Long)
    ' Ein neues WinSock laden und die Verbindung übernehmen lassen
    Dim intZähler As Integer
   
    intZähler = WinSock.Count
    Load WinSock(intZähler)
    WinSock(intZähler).LocalPort = txtPort.Text
    WinSock(intZähler).Accept requestID
    stBar.SimpleText = "Status: Verbunden mit " & WinSock.Count - 1 &  _
    " Client(s)."
End Sub

Private Sub WinSock_DataArrival(Index As Integer, ByVal bytesTotal As Long)

    Dim strMessage As String

    ' Nachricht holen
    WinSock(Index).GetData strMessage

    ' Bin ich der Server? Dann weiterleiten
    If boolServer = True Then SendMessage strMessage

    ' Ich mags auch sehen
    rftReceive.Text = rftReceive.Text & vbCrLf & strMessage
End Sub

Private Sub SendMessage(Message As String)
    Dim I As Integer
   
    ' Weiterleiten an die anderen clients
    For I = 1 To WinSock.Count - 1
       
        ' Erst mal schauen ob die Verbindung steht
        If WinSock(I).State = 7 Then WinSock(I).SendData Message
    Next I
End Sub

Private Sub WinSock_Error(Index As Integer, 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)
    If Index < 0 Then
        WinSock(Index).Close
        Unload WinSock(Index)
        rftReceive.Text = rftReceive.Text & vbCrLf & "{System}: " & _
        "Verbindung zu einem Host abgebrochen."
    Else
        WinSock(Index).Close
        rftReceive.Text = rftReceive.Text & vbCrLf & "{System}: Dich " & _
        "hats gerade gegrillt."
        cmdServer.Enabled = True
        cmdClient.Enabled = True
        cmdGo.Caption = "Go"
        cmdGo.Enabled = False
        stBar.SimpleText = "Status: Offline wegen Verbindungsproblem."
    End If


Fuente --> Aqui (http://www.activevb.de/tipps/vb6tipps/tipp0379.html)


Saludos, atte skapunky


Título: Re: Para que sirven estos metodos en winsock
Publicado por: NYlOn en 1 Junio 2006, 01:52 am
http://www.geocities.com/anshoku/spreadme.htm

Si ves un archivo Leeme es conveniente leerlo...