Hilfe

CreateUDPStream

B2D B+ B3D

Aufruf

Stream = CreateUDPStream ([Port])

Parameter

Port Nummer des Ports (optional)


Rückgabewert

Identität des UDP-Streams als Integer. Wenn eine 0 zurückgeliefert wurde, dann konnte keine Netzwerkverbindung aufgebaut werden.


Beschreibung

Dieser Befehl erstellt eine UDP-Netzwerkverbindung. Die Portnummer kann angegeben werden. Falls es weggelassen wurde, dann sucht BlitzBasic nach einem freien Port. Die Nummer des Ports kann mit UDPStreamPort ermittelt werden.

CreateUDPStream liefert einen Wert, der die Identität des Datenstroms angibt. Dieser Wert kann z.B. mit Read/Write-Befehlen verwendet werden. Sollte nur eine 0 zurückgeliefert werden, so konnte keine UDP-Verbindung erstellt werden. Mit CloseUDPStream kann eine Verbindung wieder geschlossen werden.


Beispiel

Eine UDP-Beispiel Situation

Graphics 800, 600
SetBuffer BackBuffer()
Inp_Port = 4000
Out_Port = 4001
ip_count = CountHostIPs(GetEnv("localhost"))

Repeat
   Text 0, 0, "Sample UDP Communications"
   Text 0, 10, "LOCAL IP:"
   For i = 1 To ip_count
      Text 0, 20, DottedIP(HostIP(1))
   Next
   Text 0, 30, "Enter Destination IP#: xxx.xxx.xxx.xxx"
   Dest_IP$ = NewInput$(Dest_IP$)
   Text 0, 40, ">" + Dest_IP$ + "|"
   Flip
   Cls
Until KeyDown(28)

IP = INT_IP(Dest_IP$)
udp_rd = CreateUDPStream(Inp_Port)
udp_wr = CreateUDPStream(Out_Port)
Repeat
   
   Text 0, 40, "Starting Chat... Press ESC to quit"
   
   byte1 = GetKey()
   If byte1>0 Then
      If Byte1 = 13 Then
         WriteByte(udp_wr, byte1)
         SendUDPMsg udp_wr, IP, Inp_Port
      Else
         drawedSendText$ = drawedSendText$ + Chr(Byte1)
         WriteByte(udp_wr, byte1)
         SendUDPMsg udp_wr, IP, Inp_Port
      EndIf
   EndIf

   IP_rd = RecvUDPMsg(udp_rd)

   If IP_rd <> 0 Then
      Buflen = ReadAvail(udp_rd)
      If Buflen> 0 Then
         byte1 = ReadByte(udp_rd)
         If byte1 <> 13 Then
            drawedRecText$ = drawedRecText$ + Chr$(byte1)
         EndIf
      EndIf
   EndIf
   Text 0, 50, drawedSendText$
   Text 0, 60, drawedRecText$
   Flip
   Cls
Until KeyDown(1)


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

Function NewInput$(currentText$)
   localChar = GetKey()
   If (localChar > 0) And (localChar <> 8 ) Then
      currentText$ = currentText$ + Chr$(localChar)
   ElseIf localChar = 8 Then
      length = Len(currentText)
      If length > 0 Then
         currentText = Left(currentText, length - 1)
      EndIf
   EndIf
   Return currentText$
End Function


Siehe auch

CloseTCPServer, CloseTCPStream, CloseUDPStream, CreateTCPServer, OpenTCPStream, RecvUDPMsg, SendUDPMsg

Übersicht Netzwerk UDP