Avatar billede cronck Nybegynder
23. juli 2004 - 16:08 Der er 11 kommentarer og
1 løsning

Opret 2 forbindelser pr. klient på server og husk bruger

Hej eksperter!

Jeg har et klient program som logger på en server. Først og fremmest connecter klienten til serveren, og så kan man på klienten indtaste brugernavn/kodeord.
Jeg vil gerne have at når klienten opretter forbindelse til serveren, opretter den 1 forbindelse til at sende data, og 1 til at modtage.
Når serveren modtager data fra klienten, skal den kunne hive brugernavnet som blev sendt ved login frem, og bruge det til at identificere for eks. oplysninger fra en database...
Her er min kode:
'Client opretter forbindelse til server
    With Winsock
        .Close
        .Connect "212.242.249.5", 80
    End With
-------------------------------------------------------------
'Server godkender forbindelse
Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    intConnection = intConnection + 1
    Load Winsock(intConnection)
    Winsock(intConnection).Accept requestID
 
    Me.Caption = "Server [" & intConnection & " Clients Connected]"
    AddToConsole ("Client Connected from " & Winsock(Index).RemoteHostIP)
    AddToLog ("Client Connected from " & Winsock(Index).RemoteHostIP)
End Sub
-------------------------------------------------------------
'Modtager login oplysninger fra klienten, og decrypterer
    Case "Login"
        strUser = arrSplit(1)
        strPass = arrSplit(2)
        rs.MoveFirst
          Do While rs.EOF = False
            If rs!User = strUser And rs!Password = strPass Then
                Winsock(Index).SendData EncryptText("ACTION|001")
                AddToConsole ("Client Logged in as " & strUser)
                AddToLog ("Client Logged in as " & strUser)
                db.Execute "UPDATE tblProfiles SET LastLogin = '" & rs!NowLogin & "', NowLogin = '" & Now & "', LastIp = '" & rs!NowIp & "', NowIp = '" & Winsock(Index).RemoteHostIP & "', LoginCount = '" & rs!LoginCount + 1 & "' WHERE User = '" & strUser & "'"
                Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\data\Profiles.mdb")
                Set rs = db.OpenRecordset("tblProfiles")
                Exit Sub
            End If
        rs.MoveNext
        Loop
        Winsock(Index).SendData EncryptText("ERROR|001")
        AddToConsole ("Invalid login from: " & Winsock(Index).RemoteHostIP)
        AddToLog ("Invalid login from: " & Winsock(Index).RemoteHostIP)

Hvad skal jeg gøre for at løse mine problemer?
Avatar billede cronck Nybegynder
23. juli 2004 - 18:38 #1
Har nu sat den op på 100 point...
Avatar billede cronck Nybegynder
23. juli 2004 - 19:51 #2
150 point...
Avatar billede cronck Nybegynder
24. juli 2004 - 01:08 #3
200 point!
Avatar billede cronck Nybegynder
24. juli 2004 - 01:09 #4
Måske er det endda nok, hvis i kan hjælpe mig med at få serveren til at huske at forbindelse nr X er bruger X logget på...
Og det skal selvfølgelig være så jeg kan finde den forbindel til det brugernavn...
Avatar billede sjh Nybegynder
24. juli 2004 - 01:10 #5
Hvad fordel skulle det have at du sender på den ene forbindelse og modtager på den anden?
Avatar billede sjh Nybegynder
24. juli 2004 - 01:12 #6
det hjælper ikke noget at sette point op.. folk skal nok hjælpe hvis de kan ;)
Avatar billede cronck Nybegynder
24. juli 2004 - 01:21 #7
Jeg har forsøgt at sende oplysniger gennem en Winsock forbindelse til en computer imens at den brugte samme forbindelse til at sende et svar på en anden besked...
Den ene besked bliver udelukket....
Avatar billede cronck Nybegynder
24. juli 2004 - 01:23 #8
Og de fleste source samples jeg har set i andre store chat programmer, bruger 2 forbindelser hver...?
Avatar billede cronck Nybegynder
24. juli 2004 - 01:44 #9
Alle: Hvis du er manden til jobbet, kan jeg godt sende hele mit projekt til dig...

Jeg beskriver lige lidt bedre hvordan jeg vil have at det skal fungere:

Når en client opretter en forbindelse til min server application, skal 2 forbindelser oprettes. 1 til post fra server til klient, og 1 til post fra klient til server. om begge forbindelser bliver oprettet fra starten er ligegyldigt. Brugernavnet på de 2 forbindelser skal kunne returneres, og hvis brugeren ikke er logget ind, skal den returnere "False"

Når en bruger logger ind, skal serveren tjekke om brugeren allerede er logget ind, hvis brugeren er det, skal login-forsøget afbrydes, og en tekst besked i chatten skal skrives til den bruger som var logget ind i forvejen.

Det er mit mål indtil videre. Jeg et ligesom bare gået i hak' og kan ikke komme videre.
Avatar billede sjh Nybegynder
24. juli 2004 - 01:59 #10
Avatar billede cronck Nybegynder
24. juli 2004 - 02:05 #11
Det var det som jeg startede med... :D
Kig på den nederste kommentar
Quote: "Det næste trin, ville nok være at du lavede, 1 application til chat server med DB over brugere, og så en klient program til at oprette brugere og sådan noget med... ( Bare en drøm jeg har :-D )"
Men, så gik jeg selv igang med det... :D
Avatar billede cronck Nybegynder
25. juli 2004 - 12:40 #12
lukker..
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