Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Göra en "reconnect" i Winsock program.

Postades av 2002-09-27 12:39:29 - Jari Piira, i forum visual basic - allmänt, Tråden har 4 Kommentarer och lästs av 461 personer

Har ett program i Winsock som överför filer från Client till Server (hämtad från nätet) som jag vill modifiera lite. När jag trycker på "Koppla ned" på Clienten (fungerar) ska också Servern koppla ner, men det gör den inte. Försöker jag koppla upp igen så får jag "Forcefully rejected".
Koden under "Koppla ned" knappen:

Private Sub cmdClose_Click()
' If Sock.State <> sckClosed Then
' Do
' Sock.Close
' Loop Until Sock.State = sckClosed
FT.Disconnect
cmdConnect.Enabled = True
End Sub

FT är en klassmodul som anropas.

Hur ska jag koda på Server sidan? Har testat lite men inte fått det att fungera. Ska erkänna att jag har dålig koll på det här med klassmoduler (vad det är, när används det osv).
Går det inte att ha nåt liknande det här i Servern?

Private Sub Sock_Close() ' här vet jag inte riktigt vad jag ska skriva
' If Sock.State <> sckClosed Then
' Do
' Sock.Close
' Loop Until Sock.State = sckClosed

FT.Disconnect
MsgBox "Clienten har kopplat ner!", vbOKOnly
FT.Listen
End Sub

Winsocken heter Sock.
Har också läst att man får vänta ca: 4 min om man inte sätter Localport till 0, men man måste väl kunna stänga båda på en gång. Hoppas ni har fått lite hum om vad jag håller på med.


Svara

Sv: Göra en "reconnect" i Winsock program.

Postades av 2002-09-27 13:16:04 - Jonas Gauffin


För alla dina sockets lägg till sock.Close i både Close eventet och i Error eventet. Om din server bara har en socket, så måste du ta sock.Listen igen i båda close och error eventet.

Close eventet talar om att andra sidan har stängt förbindelsen och då ska du göra likadant.

Error eventet talar om att något har gått fel, då ska man stänga socketen.

Eftersom servern inte automatisk lyssnar efter nya connections efter att socketen är stängd måste du tala om för servern att göra det. Det gör du med socket.listen

//jonas - även client/server programmerare =)


Svara

Sv: Göra en "reconnect" i Winsock program.

Postades av 2002-09-27 15:14:10 - Jari Piira

Hej!
I FT.Disconnect så stängs Sock:eten, och i FT.Listen så lyssnar man på porten. Så det är väl det jag har gjort? Det fungerar bra under knappen på Clienten men i Servern händer det inget. Har kört debug och den verkar inte ta Private Sub Sock_Close() (händer iallafall ingenting där). Kanske skriver fel där.

Dem här finns i klassmodulen:

Public Sub Disconnect()

' close the socket
Sock.Close
End Sub


Public Sub Listen()

Sock.LocalPort = Me.Port
Sock.Listen
End Sub


Private Sub Class_Initialize()

Set Sock = New Winsock
End

Den här i formuläret:

Option Explicit

Dim WithEvents FT As clsFileTransfer

Så...jag vet inte riktigt...hur göra? Förslag?


Svara

Sv: Göra en "reconnect" i Winsock program.

Postades av 2002-09-29 06:00:57 - Peter Holm

Hej.... Enklaste sättet att är nog att kolla på socketens "state". Så här har
jag gjort i ett projekt och det fungerar. Servern stänger och lägger sig i
lyssningsläge efteråt.

Private Sub sckHS1_Close()
'If the socket is closed and the state = 8, peer closed
'Then reset the socket and listen.
If sckHS1.State = sckState.sckClosing Then
MsgBox "Socket was closed by peer.", vbOKOnly, "Socket closed"
sckHS1.Close
sckHS1.Listen
End If
End Sub


För att detta skall fungera måste du lägga till en basModul som du gör en
public enum deklaration i enligt följande:

Public Enum sckState
sckClosed = 0 'Closed
sckOpen = 1 'Open
sckListening = 2 'Listening
sckConnectionPending = 3 'Connection pending
sckResolvingHost = 4 'Resolving host
sckHostResolved = 5 'Host resolved
sckConnecting = 6 'Connecting
sckConnected = 7 'Connected
sckClosing = 8 'Peer is closing the connection
sckError = 9 'Error
End Enum


/[peter.h]


Svara

Sv: Göra en "reconnect" i Winsock program.

Postades av 2002-10-08 15:59:39 - Jari Piira

Vet inte riktigt vad Enum är. Har testat så här nu på Servern:

Private Sub FT_Close() ' här vet jag inte riktigt vad jag ska skriva

FT.Disconnect
MsgBox "Clienten har kopplat ner!", vbOKOnly
FT.Listen
End Sub

...men det funkar inte.

Om jag kör en koll på om socketen är stängd eller ej i Sub:en vad ska jag då skriva? Så här??

If Sock.State <> sckClosed Then
Do
Sock.Close
Loop Until Sock.State = sckClosed

..men då är frågan om den ska heta Sock.State. Eller?


Svara

Nyligen

  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe
  • 20:22 Spel
  • 17:07 Snabb och trevlig webbplats utan l
  • 17:00 Bra spelsajt med bonusar
  • 15:51 Slappna av
  • 15:17 Onlineunderhållning på fritiden
  • 11:13 Online Kasino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 670
27 955
271 723
3 865
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies