Graphics 500,250,32,2
;######################################################
Global MainStream = CreateUDPStream(15001)
;######################################################
SetFont LoadFont("Lucida Console", 14, 1)
Color 200,200,200
;######################################################
Global Eingegeben$
;######################################################
Global Username$ = Input$("Please enter UID:")
Print "Willkommen, "+Username$
;######################################################
Function confip(IP$)
a1=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
a2=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
a3=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
a4=Int(IP$)
Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) +a4
End Function
;######################################################
Function Recognize(befehl$)
Waitfor = MilliSecs()+3005
If(Left(befehl$, 4) = "ping") Then
pingip$ = Mid(befehl$, 6, 100)
ip = confip(pingip$)
Pingstream=CreateUDPStream(15003)
WriteString(Pingstream, "ping "+Username$)
SendUDPMsg(Pingstream, ip, 15001)
Print "Ping wird ausgeführt auf "+pingip$+" ("+ip+")."
Repeat
Message=RecvUDPMsg(Pingstream)
If Message <> 0 Then
antwort$ = ReadString(Pingstream)
If antwort$ <> "" Then
Success = 1
End If
End If
Delay 1000
If Success = 0 Then
Print "Warte auf Antwort..."
Else
Print "Antwort von "+pingip$+" " + "("+antwort$+") erhalten."
End If
Until Waitfor < MilliSecs()
If Success = 0 Then
Print "Host exisitiert nicht."
End If
CloseUDPStream(Pingstream)
End If
If(Left(befehl$, 6) = "listen") Then
Print "Now Listening. Press ESC if you don't want to listen anymore."
Repeat
Listen()
Until KeyHit(1)
End If
End Function
;######################################################
Function Listen()
Message=RecvUDPMsg(Mainstream)
If Message <> 0 Then
sendung$ = ReadString(Mainstream)
If(Left(befehl$, 4) = "ping") Then
from$ = Mid(befehl$, 6, 100)
Print "Du wurdest von "+from$+" gepingt! ("+DottedIP$(Message)+")"
WriteString(Mainstream, Username$)
SendUDPMsg(Mainstream, Message)
End If
End If
End Function
;######################################################
Repeat
Befehl$ = Input("["+Username$+"@localhost]:")
If Befehl$ <> "" Then
Recognize(befehl$)
End If
Forever