TCP_ServerOpen-Baustein
Kurz-Information
Name | TCP_ServerOpen |
---|---|
→POE-Typ | →Funktion |
Kategorie | Weitere Systembausteine, Netzwerkbausteine, Baustein mit interner Fehlerdiagnose |
→Namespace | logicals.system.network.tcp |
Grafische Schnittstelle |
|
Verfügbar ab | Version 3.2.2 (für Bibliothek
|
Funktionalität
Der Baustein reserviert eine Adresse und einen Port für den →TCP-Server.
Eingänge, Ausgänge, Ergebniswert
Bezeichner | →Datentyp | 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
.
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 die 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.