open_socket_connectT_open_socket_connectOpenSocketConnectOpenSocketConnectopen_socket_connect (Operator)
Name
open_socket_connectT_open_socket_connectOpenSocketConnectOpenSocketConnectopen_socket_connect — Öffnen einer Socket-Verbindung zu einem bestehenden Socket.
Signatur
void OpenSocketConnect(const HTuple& HostName, const HTuple& Port, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Socket)
void HSocket::HSocket(const HString& HostName, Hlong Port, const HTuple& GenParamName, const HTuple& GenParamValue)
void HSocket::HSocket(const HString& HostName, Hlong Port, const HString& GenParamName, const HString& GenParamValue)
void HSocket::HSocket(const char* HostName, Hlong Port, const char* GenParamName, const char* GenParamValue)
void HSocket::HSocket(const wchar_t* HostName, Hlong Port, const wchar_t* GenParamName, const wchar_t* GenParamValue)
(
Nur Windows)
void HSocket::OpenSocketConnect(const HString& HostName, Hlong Port, const HTuple& GenParamName, const HTuple& GenParamValue)
void HSocket::OpenSocketConnect(const HString& HostName, Hlong Port, const HString& GenParamName, const HString& GenParamValue)
void HSocket::OpenSocketConnect(const char* HostName, Hlong Port, const char* GenParamName, const char* GenParamValue)
void HSocket::OpenSocketConnect(const wchar_t* HostName, Hlong Port, const wchar_t* GenParamName, const wchar_t* GenParamValue)
(
Nur Windows)
static void HOperatorSet.OpenSocketConnect(HTuple hostName, HTuple port, HTuple genParamName, HTuple genParamValue, out HTuple socket)
public HSocket(string hostName, int port, HTuple genParamName, HTuple genParamValue)
public HSocket(string hostName, int port, string genParamName, string genParamValue)
void HSocket.OpenSocketConnect(string hostName, int port, HTuple genParamName, HTuple genParamValue)
void HSocket.OpenSocketConnect(string hostName, int port, string genParamName, string genParamValue)
Beschreibung
open_socket_connectopen_socket_connectOpenSocketConnectOpenSocketConnectopen_socket_connect öffnet eine Socket-Verbindung zu einem
akzeptierenden Socket auf dem Rechner mit dem Namen
HostNameHostNameHostNamehostNamehost_name, der auf dem Port PortPortPortportport nach
Verbindungsanfragen horcht.
Die folgenden Parameter können für GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name gesetzt werden.
- 'protocol'"protocol""protocol""protocol""protocol":
-
Spezifiziert das verwendete Kommunikationsprotokoll. Das 'HALCON'"HALCON""HALCON""HALCON""HALCON"
Protokoll ohne festgelegte Adressfamilie verwendet entsprechend den aktuellen
Netzwerkeinstellungen des Rechners entweder IPv4 oder IPv6 automatisch.
Um eine bestimmte Adressfamilie auszuwählen, muss eine '4'
für IPv4 bzw. eine '6' für IPv6 an den Namen des Protokolls angehängt
werden. Z.B. bezeichnet 'HALCON4'"HALCON4""HALCON4""HALCON4""HALCON4" eine HALCON Verbindung über IPv4.
Mögliche Werte für eine generische Socketkommunikation sind 'UDP'"UDP""UDP""UDP""UDP"
und 'TCP'"TCP""TCP""TCP""TCP". Auch hier kann eine '4' oder '6' angehängt werden.
Auch die Verwendung von IPv4 (z.B. '127.0.0.1') bzw. IPv6 (z.B. '::1')
Adressen für 'HostName' legt die verwendete Adressfamilie fest.
Beide Kommunikationspartner müssen dasselbe Protokoll verwenden.
Der Datenaustausch über generische Sockets erfolgt ausschließlich mit
send_datasend_dataSendDataSendDatasend_data und receive_datareceive_dataReceiveDataReceiveDatareceive_data.
Default:
'HALCON'"HALCON""HALCON""HALCON""HALCON"
- 'timeout'"timeout""timeout""timeout""timeout":
-
Setzt ein Timeout für diesen Socket. Er wird in der Einheit Sekunden oder
als Zeichenkette 'infinite'"infinite""infinite""infinite""infinite" angegeben.
- 'tls_enable'"tls_enable""tls_enable""tls_enable""tls_enable":
-
Kontrolliert die Nutzung der Transport Layer Security (TLS) für die neue
Socket-Verbindung. Hat 'tls_enable'"tls_enable""tls_enable""tls_enable""tls_enable" den Wert 'true'"true""true""true""true",
so wird der Aufbau einer TLS-abgesicherten Verbindung unternommen.
Die Serverseite muss in diesem Fall ebenfalls TLS unterstützen. Das
Zertifikat, anhand dessen die Authentizität des Servers überpüft werden
kann, wird optional mit dem generischen Parameter 'tls_certificate'"tls_certificate""tls_certificate""tls_certificate""tls_certificate"
angegeben. Ohne TLS-Zertifikat ist die Verbindung zwar verschlüsselt,
die Authentizität des Servers kann allerdings nicht überprüft werden.
Default:
'false'"false""false""false""false"
- 'tls_certificate'"tls_certificate""tls_certificate""tls_certificate""tls_certificate":
-
Gibt den Pfad des Zertifikats an, mit dem die Authentizität des Servers
einer TLS-Verbindung überprüft werden kann. Das TLS-Zertifikat muss im
PEM-Format vorliegen. Dieser Parameter wird ignoriert, wenn
'tls_enable'"tls_enable""tls_enable""tls_enable""tls_enable" nicht auf 'true'"true""true""true""true" gesetzt ist.
- 'tsl_sni'"tsl_sni""tsl_sni""tsl_sni""tsl_sni":
-
Setzt die „Server Name Indication“, die für die TLS-Verbindung verwendet
werden soll. Dies teilt dem Server mit, für welche Domain das Zertifikat
gültig sein soll. Dies ist wichtig, wenn ein Server mehrere Domains hostet.
Dieser Parameter wird ignoriert, wenn 'tls_enable'"tls_enable""tls_enable""tls_enable""tls_enable" nicht auf
'true'"true""true""true""true" gesetzt ist.
- 'string_encoding'"string_encoding""string_encoding""string_encoding""string_encoding":
-
Setzt die Kodierung für das Senden und Empfangen von Zeichenketten.
Die Kodierung wird für send_tuplesend_tupleSendTupleSendTuplesend_tuple, receive_tuplereceive_tupleReceiveTupleReceiveTuplereceive_tuple,
send_datasend_dataSendDataSendDatasend_data und receive_datareceive_dataReceiveDataReceiveDatareceive_data verwendet. Wenn das
Kommunikationsprotokoll 'HALCON'"HALCON""HALCON""HALCON""HALCON" verwendet wird, hat diese
Einstellung nur Auswirkungen auf Verbindungen mit HALCON Versionen
vor 18.11. Wenn der Kommunikationspartner eine HALCON Version 18.11
oder neuer verwendet, wird UTF-8 bei der Kodierung von Tupeln verwendet.
Für das 'HALCON'"HALCON""HALCON""HALCON""HALCON" Protokoll muss der akzeptierende Socket zuvor in
einem anderen HALCON-Prozess mit open_socket_acceptopen_socket_acceptOpenSocketAcceptOpenSocketAcceptopen_socket_accept erzeugt
worden sein. Um eine Verbindung herzustellen, muss der
HALCON-Prozess, in dem der akzeptierende Socket läuft,
socket_accept_connectsocket_accept_connectSocketAcceptConnectSocketAcceptConnectsocket_accept_connect aufrufen. Für ein ausführliches
Beispiel siehe open_socket_acceptopen_socket_acceptOpenSocketAcceptOpenSocketAcceptopen_socket_accept.
Bei der Verwendung generischer Sockets kann der Socket, mit dem man sich
verbindet, ein beliebiger Socket vom gleichen Protokolltyp sein.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Parameter
HostNameHostNameHostNamehostNamehost_name (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Name des Rechners, zu dem die Verbindung aufgebaut
werden soll.
Default:
'localhost'
"localhost"
"localhost"
"localhost"
"localhost"
PortPortPortportport (input_control) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Nummer des Ports.
Wertevorschläge:
3000, 4570
Wertebereich:
1024
≤
Port
Port
Port
port
port
≤
65535
Minimale Schrittweite:
1
Empfohlene Schrittweite:
1
GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control) attribute.name(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Namen der generischen Parameter, die für die
Socket-Verbindung eingestellt werden sollen.
Default:
[]
Werteliste:
'protocol'"protocol""protocol""protocol""protocol", 'string_encoding'"string_encoding""string_encoding""string_encoding""string_encoding", 'timeout'"timeout""timeout""timeout""timeout", 'tls_certificate'"tls_certificate""tls_certificate""tls_certificate""tls_certificate", 'tls_enable'"tls_enable""tls_enable""tls_enable""tls_enable", 'tls_sni'"tls_sni""tls_sni""tls_sni""tls_sni"
GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control) attribute.value(-array) → HTupleMaybeSequence[Union[float, int, str]]HTupleHtuple (string / real / integer) (string / double / int / long) (HString / double / Hlong) (char* / double / Hlong)
Werte der generischen Parameter, die für die
Socket-Verbindung eingestellt werden sollen.
Default:
[]
Wertevorschläge:
0, 3.0, 'infinite'"infinite""infinite""infinite""infinite", 'HALCON'"HALCON""HALCON""HALCON""HALCON", 'UDP'"UDP""UDP""UDP""UDP", 'TCP'"TCP""TCP""TCP""TCP", 'HALCON4'"HALCON4""HALCON4""HALCON4""HALCON4", 'UDP4'"UDP4""UDP4""UDP4""UDP4", 'TCP4'"TCP4""TCP4""TCP4""TCP4", 'HALCON6'"HALCON6""HALCON6""HALCON6""HALCON6", 'UDP6'"UDP6""UDP6""UDP6""UDP6", 'TCP6'"TCP6""TCP6""TCP6""TCP6", 'utf8'"utf8""utf8""utf8""utf8", 'locale'"locale""locale""locale""locale", 'ignore'"ignore""ignore""ignore""ignore", 'true'"true""true""true""true", 'false'"false""false""false""false"
SocketSocketSocketsocketsocket (output_control) socket → HSocket, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Nummer des Sockets.
Nachfolger
send_imagesend_imageSendImageSendImagesend_image,
receive_imagereceive_imageReceiveImageReceiveImagereceive_image,
send_regionsend_regionSendRegionSendRegionsend_region,
receive_regionreceive_regionReceiveRegionReceiveRegionreceive_region,
send_tuplesend_tupleSendTupleSendTuplesend_tuple,
receive_tuplereceive_tupleReceiveTupleReceiveTuplereceive_tuple,
send_datasend_dataSendDataSendDatasend_data,
receive_datareceive_dataReceiveDataReceiveDatareceive_data
Siehe auch
open_socket_acceptopen_socket_acceptOpenSocketAcceptOpenSocketAcceptopen_socket_accept,
socket_accept_connectsocket_accept_connectSocketAcceptConnectSocketAcceptConnectsocket_accept_connect,
get_socket_paramget_socket_paramGetSocketParamGetSocketParamget_socket_param,
set_socket_paramset_socket_paramSetSocketParamSetSocketParamset_socket_param,
close_socketclose_socketCloseSocketCloseSocketclose_socket
Modul
Foundation