Graphics 800,600,32,2
;###########################################
Global Hosting = Input("Hosten (1) oder Beitreten (2)?")
Global Server, RemoteStream
Global LastSend
;###########################################
If Hosting = 1 Then
Server = CreateTCPServer(8989)
Print "Warte auf Beitritt!"
Repeat
Delay 100
RemoteStream = AcceptTCPStream(Server)
If RemoteStream <> 0 Then
Print "Client verbunden!"
End If
Until RemoteStream <> 0
Else
RemoteIP$ = Input("Server IP eingeben:")
RemoteStream = OpenTCPStream(RemoteIP$, 8989)
If RemoteStream = 0 Then
Print "Verbindung Fehlgeschlagen. Any Key zum beenden!"
WaitKey()
End
End If
End If
;###########################################
Dim Player1Data(2)
Dim Player2Data(2)
;###########################################
Function Networkrefresh()
If Hosting = 1 Then
;###########################################
While ReadAvail(RemoteStream) > 0
If ReadInt(RemoteStream) = 1 Then
Player2Data(1) = ReadInt(RemoteStream)
End If
Wend
;###########################################
WriteInt RemoteStream, 1
WriteInt RemoteStream, Player1Data(1)
Else
;###########################################
While ReadAvail(RemoteStream) > 0
If ReadInt(RemoteStream) = 1 Then
Player1Data(1) = ReadInt(RemoteStream)
End If
Wend
WriteInt RemoteStream, 1
WriteInt RemoteStream, Player2Data(1)
;###########################################
End If
End Function
;###########################################
Function PlayerControls()
If KeyDown(200) Then
If Hosting = 1 Then
If Player1Data(1) > 0 Then
Player1Data(1) = Player1Data(1)-4
End If
Else
If Player2Data(1) > 0 Then
Player2Data(1) = Player2Data(1)-4
End If
End If
End If
;###########################################
If KeyDown(208) Then
If Hosting = 1 Then
If Player1Data(1) < 500 Then
Player1Data(1) = Player1Data(1)+4
End If
Else
If Player2Data(1) < 500 Then
Player2Data(1) = Player2Data(1)+4
End If
End If
End If
End Function
;###########################################
SetBuffer BackBuffer()
Repeat
Rect(5, Player1Data(1), 10, 100, 1)
Rect(785, Player2Data(1), 10, 100, 1)
If MilliSecs()-LastSend > 50 Then
Networkrefresh()
End If
PlayerControls()
Flip
Cls
Until KeyHit(1)
;###########################################