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_connectOpenSocketConnectOpenSocketConnectOpenSocketConnectopen_socket_connect öffnet eine Socket-Verbindung zu einem
akzeptierenden Socket auf dem Rechner mit dem Namen
HostNameHostNameHostNameHostNamehostNamehost_name, der auf dem Port PortPortPortPortportport nach
Verbindungsanfragen horcht.
Mit dem Parameter 'protocol'"protocol""protocol""protocol""protocol""protocol" kann das verwendete Kommunikationsprotokoll
spezifiziert werden. Voreingestellt ist das 'HALCON'"HALCON""HALCON""HALCON""HALCON""HALCON" Protokoll ohne
festgelegte Adressfamilie. Somit wird entsprechend den aktuellen
Netzwerkeinstellungen des Rechners entweder IPv4 oder IPv6 automatisch
verwendet. 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""HALCON4" eine HALCON Verbindung über IPv4.
Mögliche Werte für eine generische Socketkommunikation sind 'UDP'"UDP""UDP""UDP""UDP""UDP" und
'TCP'"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_dataSendDataSendDataSendDatasend_data und receive_datareceive_dataReceiveDataReceiveDataReceiveDatareceive_data.
Mit dem generischen Parameter 'timeout'"timeout""timeout""timeout""timeout""timeout" kann ein Timeout
für diesen Socket angegeben werden. Er wird in der Einheit Sekunden
oder als Zeichenkette 'infinite'"infinite""infinite""infinite""infinite""infinite" angegeben.
Mit dem generischen Parameter 'tls_enable'"tls_enable""tls_enable""tls_enable""tls_enable""tls_enable" kann die Nutzung der
Transport Layer Security (TLS) für den Socket kontrolliert werden.
Der Standardwert ist 'false'"false""false""false""false""false".
Hat 'tls_enable'"tls_enable""tls_enable""tls_enable""tls_enable""tls_enable" den Wert 'true'"true""true""true""true""true", so wird Transport
Layer Security (TLS) zur Verschlüsselung der Socket-Verbindung
genutzt. Der akzeptierenden Socket muss zuvor mit open_socket_acceptopen_socket_acceptOpenSocketAcceptOpenSocketAcceptOpenSocketAcceptopen_socket_accept
und ebenfalls eingeschaltetem 'tls_enable'"tls_enable""tls_enable""tls_enable""tls_enable""tls_enable" erzeugt worden sein.
Mit dem generischen Parameter 'tls_certificate'"tls_certificate""tls_certificate""tls_certificate""tls_certificate""tls_certificate" kann der Pfad zu
einem Zertifikat angegeben werden, um die Authentizität des Servers
zu überprüfen. Ohne TLS-Zertifikat ist die Verbindung zwar verschlüsselt,
die Authentizität des Servers kann allerdings nicht überprüft werden.
Das TLS-Zertifikat muss im PEM-Format vorliegen.
Für das 'HALCON'"HALCON""HALCON""HALCON""HALCON""HALCON" Protokoll muss der akzeptierende Socket zuvor in
einem anderen HALCON-Prozess mit open_socket_acceptopen_socket_acceptOpenSocketAcceptOpenSocketAcceptOpenSocketAcceptopen_socket_accept erzeugt
worden sein. Um eine Verbindung herzustellen, muss der
HALCON-Prozess, in dem der akzeptierende Socket läuft,
socket_accept_connectsocket_accept_connectSocketAcceptConnectSocketAcceptConnectSocketAcceptConnectsocket_accept_connect aufrufen. Für ein ausführliches
Beispiel siehe open_socket_acceptopen_socket_acceptOpenSocketAcceptOpenSocketAcceptOpenSocketAcceptopen_socket_accept.
Bei der Verwendung generischer Sockets kann der Socket, mit dem man sich
verbindet, ein beliebiger Socket vom gleichen Protokolltyp sein.
Mit dem generischen Parameter 'string_encoding'"string_encoding""string_encoding""string_encoding""string_encoding""string_encoding" kann die Kodierung
für das Senden und Empfangen von Zeichenketten angegeben werden. Die
Kodierung wird für send_tuplesend_tupleSendTupleSendTupleSendTuplesend_tuple, receive_tuplereceive_tupleReceiveTupleReceiveTupleReceiveTuplereceive_tuple,
send_datasend_dataSendDataSendDataSendDatasend_data und receive_datareceive_dataReceiveDataReceiveDataReceiveDatareceive_data verwendet. Wenn das
Kommunikationsprotokoll 'HALCON'"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.
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
HostNameHostNameHostNameHostNamehostNamehost_name (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Name des Rechners, zu dem die Verbindung aufgebaut
werden soll.
Defaultwert:
'localhost'
"localhost"
"localhost"
"localhost"
"localhost"
"localhost"
PortPortPortPortportport (input_control) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Nummer des Ports.
Wertevorschläge: 3000, 4570
Typischer Wertebereich: 1024
≤
Port
Port
Port
Port
port
port
≤
65535
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_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.
Defaultwert: []
Werteliste: 'protocol'"protocol""protocol""protocol""protocol""protocol", 'string_encoding'"string_encoding""string_encoding""string_encoding""string_encoding""string_encoding", 'timeout'"timeout""timeout""timeout""timeout""timeout", 'tls_certificate'"tls_certificate""tls_certificate""tls_certificate""tls_certificate""tls_certificate", 'tls_enable'"tls_enable""tls_enable""tls_enable""tls_enable""tls_enable"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_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.
Defaultwert: []
Wertevorschläge: 0, 3.0, 'infinite'"infinite""infinite""infinite""infinite""infinite", 'HALCON'"HALCON""HALCON""HALCON""HALCON""HALCON", 'UDP'"UDP""UDP""UDP""UDP""UDP", 'TCP'"TCP""TCP""TCP""TCP""TCP", 'HALCON4'"HALCON4""HALCON4""HALCON4""HALCON4""HALCON4", 'UDP4'"UDP4""UDP4""UDP4""UDP4""UDP4", 'TCP4'"TCP4""TCP4""TCP4""TCP4""TCP4", 'HALCON6'"HALCON6""HALCON6""HALCON6""HALCON6""HALCON6", 'UDP6'"UDP6""UDP6""UDP6""UDP6""UDP6", 'TCP6'"TCP6""TCP6""TCP6""TCP6""TCP6", 'utf8'"utf8""utf8""utf8""utf8""utf8", 'locale'"locale""locale""locale""locale""locale", 'ignore'"ignore""ignore""ignore""ignore""ignore", 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"
SocketSocketSocketSocketsocketsocket (output_control) socket → HSocket, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Nummer des Sockets.
Nachfolger
send_imagesend_imageSendImageSendImageSendImagesend_image,
receive_imagereceive_imageReceiveImageReceiveImageReceiveImagereceive_image,
send_regionsend_regionSendRegionSendRegionSendRegionsend_region,
receive_regionreceive_regionReceiveRegionReceiveRegionReceiveRegionreceive_region,
send_tuplesend_tupleSendTupleSendTupleSendTuplesend_tuple,
receive_tuplereceive_tupleReceiveTupleReceiveTupleReceiveTuplereceive_tuple,
send_datasend_dataSendDataSendDataSendDatasend_data,
receive_datareceive_dataReceiveDataReceiveDataReceiveDatareceive_data
Siehe auch
open_socket_acceptopen_socket_acceptOpenSocketAcceptOpenSocketAcceptOpenSocketAcceptopen_socket_accept,
socket_accept_connectsocket_accept_connectSocketAcceptConnectSocketAcceptConnectSocketAcceptConnectsocket_accept_connect,
get_socket_paramget_socket_paramGetSocketParamGetSocketParamGetSocketParamget_socket_param,
set_socket_paramset_socket_paramSetSocketParamSetSocketParamSetSocketParamset_socket_param,
close_socketclose_socketCloseSocketCloseSocketCloseSocketclose_socket
Modul
Foundation