[B+]Client-server die zweite
Übersicht

![]() |
s_m_wBetreff: [B+]Client-server die zweite |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, da sich mein anderes Problem von selbst gelöst hat, jetzt mal eine neue Frage. Ich habe diesen Code:
Server: Code: [AUSKLAPPEN] Type stream
Field Stream Field Name Field id Field Pingactive Field Pingtemp Field Ping End Type Type connectstream Field Stream End Type svrGame=CreateTCPServer(8080) If svrGame<>0 Then Print "Server erfolgreich gestartet" Else Print "Server konnte nicht gestartet werden" End End If Global t1,t2,t3,t4 While Not KeyHit(1) ; Neue streams akzepieren strStream=AcceptTCPStream(svrGame) If strStream Then s.connectstream=New connectstream s\Stream=strStream Print "Neue anfrage" EndIf ;Connections akzepiterien und so For s.connectstream=Each connectstream If ReadAvail(s\stream) If ReadString(s\stream)=Chr(187)+"Connect" Then d.stream=New stream d\stream=s\stream d\id=CheckId() d\Pingactive=1 Delete s.connectstream WriteString(d\stream,d\id) Print "Neuer stream. Id "+d\id ;Exit EndIf EndIf Next ; Ping Pong t1=MilliSecs() If t1>t2+5000 Then t2=MilliSecs() Print "Sende daten an alle streams (Ping Pong)" For f.stream=Each Stream ; Alle löschen die keinen ping mehr haben If f\Pingactive=0 Then Print "Client "+ f\id +" disconnected ("+ f\Name +")" Kick(f\stream) Delete f.stream Else ;Nächsten Ping senden Print "Sende an client "+ f\id+ " ("+ f\Name +")" WriteString f\stream,Chr(187)+"Ping?" f\Pingtemp=MilliSecs() f\Pingactive=0 EndIf Next EndIf For g.stream=Each Stream If ReadAvail(g\Stream) Then If ReadString(g\Stream)=Chr(187)+"Pong!" Then g\Pingactive=1 g\Ping=MilliSecs()-g\Pingtemp Print "Pong von client "+g\id+" bekommen. Ping: "+g\Ping EndIf EndIf Next Wend CloseTCPServer svrGame End Function CheckId() x=0 For s.stream=Each stream If Not s\id=x Then Return(x) EndIf x=x+1 Next End Function Function Kick(stream) WriteString(stream,Chr(187)+"kicked") End Function Client: Code: [AUSKLAPPEN] Global id,Strng$
SeedRnd MilliSecs() strmGame=OpenTCPStream("127.0.0.1",8080) If strmGame<>0 Then Print "Client erfolgreich verbunden" Print "Sende Anfrage" WriteString strmGame,Chr(187)+"Connect" Print "Warte..." While Not ReadAvail(strmGame) Delay 1 Wend id=ReadString(strmGame) Print "Id bekommen: "+id Else Print "Konnte keine Verbindung herstellen" WaitKey End End If While Not KeyHit(1) If ReadAvail(strmGame) Then Strng$=ReadString(strmGame) Print Strng$ If Strng$=Chr(187)+"Ping?" Then WriteString(strmGame,Chr(187)+"Pong!") Print "Ping? Pong!" EndIf If Strng$=Chr(187)+"kicked" Then Print "Kicked from server" CloseTCPStream strmGame EndIf EndIf Wend CloseTCPStream strmGame End Doch gibt der sverer mir bei meinem kumpel den ping von ~600 aus, obwohl er in absolut jedem spiel/chat/etc. einen ping von rund ~100 hat. Liegt das an bb oder an mir? |
||
Sheep Happens |
![]() |
Hellfront |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum hast du das nicht in den ersten Thread gepostet? Das wäre verdammt nochmal Übersichtlicher. | ||
![]() |
s_m_w |
![]() Antworten mit Zitat ![]() |
---|---|---|
ups, stimmt... Sry | ||
Sheep Happens |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group