Hilfe

CreateTCPServer

B2D B+ B3D

Aufruf

Stream = CreateTCPServer (Port)

Parameter

Port Portnummer, die für eine Kommunikation benutzt werden soll


Rückgabewert

Identität des Datenstroms, die für weitere Befehle verwendet wird. Falls eine 0 zurückgeliefert wird, dann konnte der Server nicht erstellt werden. Sollte das der Fall sein, liegt es vermutlich an Firewall-Einstellungen oder an anderen Programmen, die eventuell die Netzwerkkommunikation blockieren können.


Beschreibung

Dieser Befehl erstellt einen TCP/IP-Server. Ein Server wird für Kommunikation mit Clients über eine Netzwerkverbindung benötigt. Für diesen Befehl muss man nur die Portnummer angeben, über die die Kommunikation stattfinden soll.
CreateTCPServer 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 kein Server erstellt werden. Mit CloseTCPServer kann eine Verbindung wieder geschlossen werden.


Beispiele

Server

; Beispiel / Demo
;   - CreateTCPServer
;   - OpenTCPStream
;   - AcceptTCPStream
;
; Server
;
; Ausgelegt für lokalen Betrieb mit
; einem Client

Graphics 400,300,0,2
Global Timer = CreateTimer(2)
AppTitle "Server"

; Server eröffnen
Local Stream = CreateTCPServer( 12345 )
Color 160, 160, 160
Print "Server eröffnet"

Local NewClient, ClientStream
Local MsgCount = 1
Local txt$

While Not KeyHit(1)
   ; Client verbinden lassen
   NewClient = AcceptTCPStream( Stream )
   If NewClient
      ClientStream = NewClient
      Color 160, 160, 160
      Print "Client verbunden"
   EndIf
   
   ; Stream auslesen
   If ClientStream
      While ReadAvail( ClientStream )
         ; Empfangene Nachricht ausgeben
         Color 0, 255, 0
         Print CurrentTime() +", Empfange: " +ReadLine( ClientStream )   ; Readline liest den übertragenen Text aus
         ; und antworten
         txt$ = "Antwort Nr. " +MsgCount
         MsgCount = MsgCount +1
         
         WriteLine ClientStream, txt$   ; WriteLine überträgt den Text
         Color 0, 0, 255
         Print CurrentTime() +", Sende: " +txt$
      Wend
   EndIf

   WaitTimer(Timer)
Wend

; Streams schliessen
If ClientStream Then CloseTCPStream( ClientStream )
CloseTCPServer( Stream )
End

Client

; Beispiel / Demo
;   - CreateTCPServer
;   - OpenTCPStream
;   - AcceptTCPStream
;
; Client
;
; Ausgelegt für lokalen Betrieb mit
; einem Client

Graphics 400,300,0,2
Global Timer = CreateTimer(2)
AppTitle "Client"

; Zum Server verbinden
Local Stream = OpenTCPStream( "127.0.0.1", 12345 )
If Not Stream Then RuntimeError "Verbindung konnte nicht hergestellt werden."

Color 160, 160, 160
Print "Verbinde..."

Local MsgCount = 1, MsgSendTime = MilliSecs() +1000
Local txt$

While Not KeyHit(1)
   ; Im Sekundetakt eine Nachricht schreiben
   If MilliSecs() > MsgSendTime
      txt$ = "Nachricht Nr. " +MsgCount
      MsgCount = MsgCount +1

      WriteLine Stream, txt$   ; WriteLine überträgt den Text
      Color 0, 0, 255
      Print CurrentTime() +", Sende: " +txt$

      MsgSendTime = MilliSecs() +1000
   EndIf

   ; Antworten auslesen
   While ReadAvail( Stream )
      ; Empfangene Nachricht ausgeben
      Color 0, 255, 0
      Print CurrentTime() +", Empfange: " +ReadLine( Stream )   ; ReadLine liest den übertragenen Text aus
   Wend
   
   WaitTimer(Timer)
Wend

; Stream schliessen
CloseTCPStream( Stream )
End


Siehe auch

AcceptTCPStream, CloseTCPServer, CloseTCPStream, CloseUDPStream, CreateUDPStream, OpenTCPStream

Übersicht Netzwerk TCP