TCP_ServerOpen-Baustein
Kurz-Information
Name |
TCP_ServerOpen |
→POE-Typ |
|
Kategorie |
Weitere Systembausteine, Netzwerkbausteine, Baustein mit interner Fehlerdiagnose |
logicals.system.network.tcp |
|
Grafische Schnittstelle |
|
Verfügbar ab |
Version 3.2.2 (für Bibliothek
Standard
)
|
Funktionalität
Der Baustein reserviert eine Adresse und einen Port für den →TCP-Server .
Eingänge, Ausgänge, Ergebniswert
|
Bezeichner |
Beschreibung |
|
Eingänge: |
interfaceAddress |
DWORD |
IP-Adresse, die reserviert werden soll |
interfacePort |
UINT |
IP-Port, die reserviert werden soll |
|
Ausgänge: |
serverHandle |
TCP_ServerHandle |
Handel der reservierten Adresse und des reservierten Ports |
Ergebniswert: |
– (= rc ) |
TCP_ErrorCode |
liefert den Status der TCP-Operation:
|
Der Eingang EN und der Ausgang ENO sind für den →Aufruf
des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN und zum Ausgang ENO.
Informieren Sie sich unter:
"Bausteine für sichere Logik", ob dieser Baustein für das Entwickeln von sicherheitsrelevanten Anwendungen unterstützt wird.
"Kennzeichnung von sicherer Logik im FBS-Editor", welche Auswirkung die Verwendung des Bausteins als Baustein für sichere Logik hat.
Interne Fehlerdiagnose für Baustein
Der Baustein prüft die folgenden Fehlerfälle:
Zu viele Systemressources sind reserviert.
Socket kann nicht erstellt werden.
Socket für d ie Schnittstelle kann nicht gebunden werden.
In einem solchen Fehlerfall wird der Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung) zurückgesetzt. Zusätzlich liefert der Baustein den entsprechenden Status (siehe die vorhergehende Tabelle).
Beispiel für Verwendung im ST-Editor
PROGRAM TCP_Server
USING logicals.system.network.tcp;
VAR
accptRC : TCP_ErrorCode := invalidHandle;
serverCommData : tcpServerCommData;
sendTestMsg : String[30] := 'Test Message';
init : bool := true;
END_VAR
IF init THEN
serverCommData.address := INET_ATON('127.0.0.1');
serverCommData.port := 9999;
TCP_ServerOpen(interfaceAddress:=serverCommData.address, interfacePort:=serverCommData.port, serverHandle=>serverCommData.serverHandle);
init := false;
END_IF;
IF accptRC <> succeeded THEN
accptRC := TCP_ServerAcceptConnection(serverHandle:=serverCommData.serverHandle, clientHandle=>serverCommData.clientHandle);
ELSE
TCP_Send(clientHandle:=serverCommData.clientHandle, data:=sendTestMsg);
END_IF;
END_PROGRAM
TYPE
tcpServerCommData : STRUCT
address : DWORD;
port : UINT;
serverHandle : logicals.system.network.tcp.TCP_ServerHandle;
clientHandle : logicals.system.network.tcp.TCP_ClientHandle;
END_STRUCT;
tcpClientCommData : STRUCT
serverAddress : DWORD;
serverPORT : UINT;
clientHandle : logicals.system.network.tcp.TCP_ClientHandle;
END_STRUCT;
END_TYPE
Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.