Avatar billede xafion Nybegynder
16. februar 2001 - 14:38 Der er 7 kommentarer og
2 løsninger

Multi threading

Hej.

Jeg have dette til at du:

En server hos mig på ADSL skal køre med Access DB / via et VB program..

En klient skal så kunne forbinde til dette VB program på min IP og få at vide om dennes konto er åben eller lukket /  mere info.

Det jeg tænkte på var hvordan man laver en port threaded. Dvs at flere kan bruge den.

F.eks. 

Fru Petersen forbinder til min server og handshaker

Hr Hansen prøver så at forbinde til min server men får fejl fordi porten allerede er optaget.


Jeg ville gerne have det ligesom f.eks. en FTP server som kan køre med flere ting over, i dette tilfælde, port 21. 


Den port serveren skal køre på er ligegyldig.

  - Xafion

PS. Jeg er måske først tilbage på mandag, men svar endelig selvom en anden også har gjort det.
Avatar billede spectual Nybegynder
16. februar 2001 - 14:40 #1
Hvorfor ikke lave et web-interface til det dér?

Så kan du vel lave COM-dll\'er til det der ikke kan laves i ASP.
Avatar billede xafion Nybegynder
16. februar 2001 - 22:26 #2
Hvordan vil du lave det i ASP?
Avatar billede jennemaan Nybegynder
19. februar 2001 - 13:09 #3
Du skal lave en tcp server (som lytter på en bestemt port og så connecter på en anden port).

Følgende eksempel antager at du har en winsock control du kalder tcpServer:

Private intMax As Long

Private Sub Form_Load()
  intMax = 0
  sckServer(0).LocalPort = 4711 \'Den port du vil lytte på
  sckServer(0).Listen \'lyt :o)
End Sub

Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
  If Index = 0 Then \'Requesten kommer til index 0 i dit control array
      intMax = intMax + 1 \'Tæl index 1 op
      Load sckServer(intMax) \'instansier en winsockcontrol med pågældende index
      sckServer(intMax).LocalPort = 0 \'sæt lokal port til 0
      sckServer(intMax).Accept requestID \'Accepter forbindelse, lokal port tildeles automatiskt.
  End If
End Sub


Private Sub tcpServer_DataArrival _
(Index As Integer,ByVal bytesTotal As Long)
    Dim strData As String
    tcpServer(index).GetData strData

\'gør hvad du vil med de indkommende data fra forbindelse (index). Husk at sende med tcpServer(index).Senddata Whatever :o)

End Sub

Avatar billede jennemaan Nybegynder
19. februar 2001 - 13:09 #4
sckServer skal selvfølgelig være et controlarray :o)
Avatar billede xafion Nybegynder
19. februar 2001 - 13:42 #5
skal  Private Sub tcpServer ikke være sckServer?? =)


Btw:  Du er da lidt af en gavtyv... for jeg har set præcis samme kode ekspel på PlanetSourceCode.com/vb

=)
Avatar billede xafion Nybegynder
19. februar 2001 - 13:44 #6
Btw... når du sætter LocalPort til 0 vælger den en random port..  *G*  Har du ikke styr på \'din\' kode?

<<LocalPort = 0 \'sæt lokal port til 0 >> ...
Avatar billede jennemaan Nybegynder
19. februar 2001 - 14:13 #7
xafion, kodestumpen bygger på et eksempel fra msdn.

Den vælger først random port når den rent faktisk Accepter en incoming request. Hvis man ikke sætter localport til 0, (men f.eks. 666) vil den forsøge at accepte på den port. Dette vil naturligvis føre til problemer :o)

Ja, jeg fik ikke renamet _DataArrival ... So what? :o)

Unskyld at jeg ikke satte mig ned og skrev et eksempel fra bunden af, men at jeg valgte at bruge msdn\'s eksempel som grundlag. -Det gør jo ikke kodestumpen mindre relevant, vel?

/Jennemaan


Avatar billede xafion Nybegynder
19. februar 2001 - 21:55 #8
HVORFOR HAR JEG IKKE FÅET EN EMAIL OM DETTE POST..*GRR*  lorte eksperten..kan sq ikke stole på at den reminder mig..
Avatar billede xafion Nybegynder
19. februar 2001 - 21:57 #9
Hmm .. jeg giver ikke ligefrem 30 point for noget af Microsofts eget lort...
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