Volg de onderstaande video om te zien hoe je onze site als web-app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.

Imports System.Net.Sockets
Imports System.Threading
Public Class Form1
Inherits System.Windows.Forms.Form
"Windows Form Designer generated code "
Private tcpClient As tcpClient
Private thClient As Thread
Private connected As Boolean
Private clientHost As String
Private clientPort As Integer
Private Sub connect(ByVal host As String, ByVal port As Integer)
Dim client As New Net.Sockets.TcpClient
Dim tijd As Long
Dim timeout As Integer = 5000
thClient = New Thread(AddressOf connectsocket)
connected = False
thClient.Start()
tijd = Environment.TickCount + timeout
While tijd > Environment.TickCount
If connected = True Then
'verbonden
thClient.Abort()
thClient = Nothing
Exit Sub
End If
Application.DoEvents()
End While
tcpClient.Close()
tcpClient = Nothing
thClient.Abort()
thClient = Nothing
'retry
connect("nieuwip", 123)
End Sub
Private Sub connectsocket()
tcpClient.Connect("localhost", 123)
connected = True
End Sub
End Class
klennepette zei:Ik denk dat je dan met asynchrone sockets moet werken.
tcpclient heeft naar mijn weten toch geen instelling voor de connection timeout.
Als je toch tcpclient wil gebruiken kan dit op een omslachtige manier
(ooit eens nodig gehad)
Code:Imports System.Net.Sockets Imports System.Threading Public Class Form1 Inherits System.Windows.Forms.Form "Windows Form Designer generated code " Private tcpClient As tcpClient Private thClient As Thread Private connected As Boolean Private clientHost As String Private clientPort As Integer Private Sub connect(ByVal host As String, ByVal port As Integer) Dim client As New Net.Sockets.TcpClient Dim tijd As Long Dim timeout As Integer = 5000 thClient = New Thread(AddressOf connectsocket) connected = False thClient.Start() tijd = Environment.TickCount + timeout While tijd > Environment.TickCount If connected = True Then 'verbonden thClient.Abort() thClient = Nothing Exit Sub End If Application.DoEvents() End While tcpClient.Close() tcpClient = Nothing thClient.Abort() thClient = Nothing 'retry connect("nieuwip", 123) End Sub Private Sub connectsocket() tcpClient.Connect("localhost", 123) connected = True End Sub End Class
Public Sub connect()
Dim adres As String
Dim g As New GWC()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim aant As Integer
Const max = 10
Dim ip As String = ""
Dim port As String = ""
connecten:
j = 0
adres = ""
'tien keer proberen uit de lijst die opgeslagen is
For aant = 0 To max
ip = ""
port = ""
tcpClient = New System.Net.Sockets.TcpClient()
adres = g.getHost()
Trim(adres)
'kijken of er adressen in de cache zitten
While IsNumeric(adres.Chars(0)) = False
g.UpdateHosts()
Debug.Print("geen nummer op 1")
adres = g.getHost()
Trim(adres)
End While
'de ip om op te connecten uit de string halen
For i = 0 To adres.Length - 1
If adres.Chars(i) <> ":" Then
ip += adres.Chars(i)
Else
j = i
Exit For
End If
Next
'de poort uit de string halen
For k = j + 1 To adres.Length - 1
port += adres.Chars(k)
Next
Debug.Print("poort " + port + vbCrLf + "ip " + ip + vbCrLf)
'proberen te connecten op de ip met de poort
Try
tcpClient.Connect(ip, Int32.Parse(port))
networkStream = tcpClient.GetStream
Debug.Print("connected")
If handshaking() = False Then
Exit Try
Else
Exit Sub
End If
Catch
Debug.Print("Lukt niet")
tcpClient.close()
End Try
Next
g.UpdateHosts()
GoTo connecten
End Sub
AcIdR3IgN zei:en waarom mag je maar 5 seconden wachten.. en dan naar een andere ip? wa probeerde te maken? een of andere bot?
Imports System.Net.Sockets
Public Class Form1
Private client() As TcpClient
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
ReDim client(0 To 9)
For i = 0 To 9
client(i) = New TcpClient
client(i).BeginConnect("192.168.0.16", 80, New AsyncCallback(AddressOf callback), i)
Next
'ergens een timer de verbinding laten sluiten:
If Not client(5).Connected Then client(5).Close()
If Not client(6).Connected Then client(6).Close()
End Sub
Private Sub callback(ByVal ar As IAsyncResult)
Dim i As Integer = CType(ar.AsyncState, Integer)
If client(i).Client Is Nothing Then
Debug.Print("Connection for client " & i & " was closed (timeout)")
Else
Debug.Print("Client " & i & " connected=" & client(i).Connected)
End If
End Sub
End Class
BuiZe zei:how 'bout this:
Meteen 10 connectie-aanvragen tegelijk (naar de aparte 'servents') en nadien de gebeurtenissen opvangen (verbinding verbroken door timer of verbinding geslaagd).Code:Imports System.Net.Sockets Public Class Form1 Private client() As TcpClient Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i As Integer ReDim client(0 To 9) For i = 0 To 9 client(i) = New TcpClient client(i).BeginConnect("192.168.0.16", 80, New AsyncCallback(AddressOf callback), i) Next 'ergens een timer de verbinding laten sluiten: If Not client(5).Connected Then client(5).Close() If Not client(6).Connected Then client(6).Close() End Sub Private Sub callback(ByVal ar As IAsyncResult) Dim i As Integer = CType(ar.AsyncState, Integer) If client(i).Client Is Nothing Then Debug.Print("Connection for client " & i & " was closed (timeout)") Else Debug.Print("Client " & i & " connected=" & client(i).Connected) End If End Sub End Class
BuiZe zei:Mijn kennis van VB.NET reikt niet zover als die van VB6, maar het komt er op neer ofwel een timercontrol op je form ofwel een timerobject in code te maken. Na de For die de BeginConnect's aanroept, start je de timer, die bij het optreden van het timerevent alle connecties i sluit die niet gemaakt zijn:
If Not client(i).Connected Then client(i).Close()
Close() genereert blijkbaar ook de callback, dus je kan daarin alles afvangen.
and what is it exactly that has to be programmed?DemonDesign zei:Im looking for a couple people I need Help From.
: Demogorgon : Crypt Keeper : Time Lord : Garbageheap :
PLZ I need help Programing Something For "School"![]()