Der Server funktioniert einwandfrei, den habe ich schon anderweitig getestet.
Ich habe das Programm jetzt folgendermaßen verändert:
IF bstart THEN
IP_C.C_PORT := 3306;
IP_C.C_IP := OSCAT_NETWORK.IP4_DECODE('192.168.100.100');
IP_C.C_MODE := 0;
IP_C.TIME_RESET := TRUE;
IP_C.C_ENABLE := TRUE;
IP_C.R_OBSERVE := TRUE;
S_BUF.BUFFER[0] := 1;
S_BUF.SIZE := 1;
OSCAT_NETWORK.SYSLIBSOCKETS_OPTION := BYTE#2#0000_0001;
bstart := FALSE;
END_IF
IP_Control(IP_C := IP_C, S_BUF := S_BUF, R_BUF := R_BUF, IP := IP_C.C_IP, PORT := 3306, TIME_OUT := T#0S);
Der ERROR-Parameter wechselt nun zwischen 0 und 4244635648. Ein seltsamer Wert, oder?
C_STATE wechselt zwischen 0, 1 und 254.
EDIT: In der Doku gibt ein Beispiel für IP_CONTROL. Da wird auch IP_FIFO aufgerufen und nicht IP_CONTROL. Deswegen bin ich darauf gekommen.
EDIT2: Der Fehlercode besagt anscheinend, dass die Verbindung vom Remote beendet wurde. Das deutet darauf hin, dass es wohl doch am Server liegt, oder?
Das wäre allerdings seltsam, weil der Server problemlos mit anderen Clients zusammenarbeitet, die in C und Visual Basic implementiert wurden.
EDIT3: Bekomme den Fehler aber auch noch, wenn ich das Netzwerkkabel rausziehe.