UDP SelfChat von ??? |
Hier ein kleines Beispiel für ein UDP Chat, um auch zu Zeigen das man ganze Linien bzw Textpassagen versenden kann. Sender und Empfänger sind im gleichen Programm enthalten, die man natürlich auch ohne grossen Aufwand trennen kann. Noch als Anmerkung. UDP geht jeweils nur über einen Port in einer Richtung! Der Empfänger muss mit CreateUDPStream einen Kanal mit Port öffen. Der Sender muss auch einen Kanal öffnen, aber ohne Port, da dieser nur sendet. Schlussendlich muss der Sender nur per SendUDPMsg(...) sagen auf welche IP und Port er senden will. [code:1:39b006ba29] Inp_Port = 4000 IP = INT_IP("127.0.0.1") ; Localhost udp_rd = CreateUDPStream(Inp_Port) ; Empfänger udp_wr = CreateUDPStream() ; Sender ;######################################### While Not KeyDown(1) ; Sender byte1 = GetKey() If byte1 > 0 Then If byte1 <> 13 Then txt1$ = txt1$ + Chr$(byte1) Else Print "1: "+ txt1$ WriteLine( udp_wr, txt1$) SendUDPMsg(udp_wr, IP, Inp_Port) txt1$ = "" EndIf EndIf ;######################################### ; Empfänger IP_rd = RecvUDPMsg(udp_rd) If IP_rd <> 0 Then buflen = ReadAvail(udp_rd) If buflen > 0 Then txt2$ = ReadLine$(udp_rd) Print "2: "+ txt2$ EndIf EndIf Wend CloseUDPStream udp_wr CloseUDPStream udp_rd End Function INT_IP(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 [/code:1:39b006ba29] |