Avatar billede deamill Nybegynder
08. marts 2001 - 15:44 Der er 7 kommentarer og
1 løsning

WinSock

Hejsa,

Hvordan kan man tjekke om en Winsock1.Remotehost er tilstede (inden man begynder ak kommunikere)??
Avatar billede winkill Nybegynder
08. marts 2001 - 15:52 #1
Hvis du ikke er connected er det vel bare at lave en...

Function WSConnect(RemoteHost As String, RemotePort As Integer, Optional Timeout As Integer = 3) As Boolean
  Dim sTime As String
  sTime = Now()
  With Winsock1
    .Close
    Call .Connect(RemoteHost, RemotePort)
    While DateDiff(\"s\", sTime, Now()) < Timeout And .Status <> sckConnected
      DoEvents
    Wend
    If .Status = sckConnected Then WSConnect = True
  End With
End Function

Så kan du altid connecte med eks.:

If WSConnect(\"www.dr.dk\", 80, 5) Then
  Msgbox \"Der er oprettet forbindelse !\"
Else
  Msgbox \"Serveren svarede ikke indenfor 5 sekunder.\"
End If
Avatar billede deamill Nybegynder
12. marts 2001 - 11:42 #2
WinSock har verken en metode der hedder call eller status!?!
Avatar billede winkill Nybegynder
12. marts 2001 - 11:48 #3
Sorry, status hedder State, det var mig der huskede forkert. Hvaad angår Call så har det ikke direkte noget med Winsock at gøre, du kan læse om den på msdn.microsoft.com/library
Hvis du vil kalde en metode med plere end et parameter og eks skriver
obj.dosomething(x, y) så vil VB sige at det ikke er tilladt at bruge paranteser ved kald af subs eller noget i den retning.
Skriver du i stedetfor Call obj.dosomething(x, y) så virker det, men man kunne også vælge at bruge obj.dosomething x, y og derved fjerne paranteserne.

Anyways, udskift status me state, så er den der.
Avatar billede winkill Nybegynder
12. marts 2001 - 13:35 #4
Hvad er der galt med den løsning ??

Her er koden i tilrettet version - jeg har lige testet det i vb6.0 og det virker.

Function WSConnect(RemoteHost As String, RemotePort As Integer, Optional Timeout As Integer = 3) As Boolean
  Dim sTime As String
  sTime = Now()
  WSConnect = False
  With Winsock1
    .Close
    Call .Connect(RemoteHost, RemotePort)
    While DateDiff(\"s\", sTime, Now()) < Timeout And .State <> sckConnected
      DoEvents
    Wend
    If .State = sckConnected Then WSConnect = True
  End With
End Function
Avatar billede deamill Nybegynder
12. marts 2001 - 14:14 #5
Sorry, ja det virker!!!

:-)
Avatar billede winkill Nybegynder
12. marts 2001 - 14:19 #6
Ok, mesterligt :o)
Avatar billede cckring Praktikant
27. april 2001 - 14:09 #7
Er der så een af jer, der nemt kan generere en hangup.exe til mig?

Jeg er ikke den store VB-haj, men jeg har brug for et program jeg kan kalde fra Java, så det kan afbryde internetforbindelse.
Avatar billede cckring Praktikant
27. april 2001 - 14:10 #8
Ooops - forkert diskussion - jeg prøver i den anden...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester