Samsung TV schliesst Client Socket nach dem Senden

Hallo an Alle,

ich sende mit folgender Funktion und im gleichen Moment steht vor meinem Socket ein rotes Ausrufezeichen. Der Socket geht nach einer längeren Weile wieder auf.
Es liegt an dem Senden.

Ich weiss nicht mehr weiter.


function TV_SAMSUNG_SEND($tv,$key) {
   $MaxCount = 10;
   $ID_TV_SZ = "SZ";
	$ID_TV_WZ = "WZ";
	$ID_CS_TV_SZ = 32486 /*[Samsung TV SZ]*/ ;
	$ID_CS_TV_WZ = 14286 /*[Samsung TV WZ]*/ ;
	//$ID_IR_TV_SZ = 41196 /*[Objekt #41196 existiert nicht]*/ ;
	//$ID_IR_TV_WZ = 51248 /*[Systeminstanzen\Fernbedienungen IRTrans\IRTrans WZ]*/ ;
	$IP_TV_SZ = "192.168.175.230";
	$IP_TV_WZ = "192.168.175.220";
	$src = "192.168.175.100"; # ip des IPS
	$mac = "00-30-67-B4-9D-80"; # mac des IPS
	$remote = "IPS Remote";
	$app = "iphone..iapp.samsung";

	if ($tv == $ID_TV_SZ) {
		$tv = "UE40ES6580"; # iphone.UE55C6700.iapp.samsung
		$dst = $IP_TV_SZ;
      $ID_Socket = $ID_CS_TV_SZ;
      $ID_ReceiveOK = 47560 /*[SamsungTV SZ Cutter\ReceiveOK]*/ ;
	}
   if ($tv == $ID_TV_WZ) {
		$tv = "UE65ES8090"; # iphone.UE55C6700.iapp.samsung
		$dst = $IP_TV_WZ;
		$ID_Socket = $ID_CS_TV_WZ;
		$ID_ReceiveOK = 55180 /*[SamsungTV WZ Cutter\ReceiveOK]*/ ;
	}


	$samsungstatus = IPS_GetInstance($ID_Socket);
	if ($samsungstatus['InstanceStatus'] <> 102){
	    IPS_SetProperty($ID_Socket,'Open',true);
	    @IPS_ApplyChanges($ID_Socket);
	    $samsungstatus = IPS_GetInstance($ID_Socket);
     	 if ($samsungstatus['InstanceStatus'] <> 102){
	        //echo "<FONT SIZE='+3' COLOR=red><br>FERNSEHER REAGIERT NICHT</FONT>";
	    }
 	}
	
	if ($samsungstatus["InstanceStatus"] == 102){
		setvalueboolean($ID_ReceiveOK, false);
		$Count = 0;
		do {
			$msg = chr(0x64).chr(0x00).chr(strlen(base64_encode($src))).chr(0x00).base64_encode($src).chr(strlen(base64_encode($mac))).chr(0x00).base64_encode($mac).chr(strlen(base64_encode($remote))).chr(0x00).base64_encode($remote);
			$pkt = chr(0x00).chr(strlen($app)).chr(0x00).$app.chr(strlen($msg)).chr(0x00).$msg;
			if ($samsungstatus["InstanceStatus"] == 102) @CSCK_SendText($ID_Socket,$pkt);
			//CSCK_SendText($ID_Socket,$pkt);
			$ar = explode(",",$key);
	      for ($i = 0; $i < count($ar); $i++) {
	      	$msg = chr(0x00).chr(0x00).chr(0x00).chr(strlen(base64_encode($ar[$i]))).chr(0x00).base64_encode($ar[$i]);
				$pkt = chr(0x00).chr(strlen($tv)).chr(0x00).$tv.chr(strlen($msg)).chr(0x00).$msg;
				if ($samsungstatus["InstanceStatus"] == 102) @CSCK_SendText($ID_Socket,$pkt);
				//@CSCK_SendText($ID_Socket,$pkt);
				IPS_SLEEP(250);
			}
			$Count++;
		} while ((!getvalueboolean ($ID_ReceiveOK)) and ($Count < $MaxCount));
	}
	//CSCK_SetOpen($ID_Socket, false);
	//@IPS_SetProperty($ID_Socket,'Open',false);
}