23. juli 2004 - 16:08Der 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)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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...
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....
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.
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
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.