Здравствуйте. Помогите советом, пожалуйста.
Удалённо: ПЛК - Роутер - (Инет) - Роутер - СерверАпач = Передача и прием работает.
Напрямую: ПЛК - СерверАпач = Постоянный ретрансмишн и до HTTP дело не доходит.
----------------------Wireshark--------------
172252 2513.393191 192.168.1.100 192.168.1.155 TCP 60 452 → 9908 [SYN] Seq=0 Win=512 Len=0
171975 2510.079455 192.168.1.100 192.168.1.155 TCP 60 [TCP Retransmission] 451 → 9908 [SYN] Seq=0 Win=512 Len=0
---------------------
Код взят с этого сайта:
PHP код:
network_counter:=network_counter+1;
IF 
network_counter http_period THEN
    network_counter
:=0;
    IF 
network_status <> 0 THEN
         network_time_out
:=network_time_out+1; (* счетчик таймаутов *)
            
out5:=FALSE;(*лампа связь выкл*)
    
END_IF

    network_status
:=1;
    
connect_counter:=0;
    
srv_adr.sin_addr:=IP_srv_16;
    
srv_adr.sin_family:=SOCKET_AF_INET;
    
srv_adr.sin_port:=STRING_TO_INT(PORT_srv_str);
    IF 
sock>0 THEN SysSockClose(sock); END_IF;

END_IF

    
CASE network_status OF
    1
:    (* создаём сокет *)
        
sock := SysSockCreate(SOCKET_AF_INETSOCKET_STREAMSOCKET_IPPROTO_TCP);
        IF 
sock<>16#FFFFFFFF THEN
            
network_status:=2;
            
SysSockIoctl(sock,SOCKET_FIONBIO,ADR(param_ctrl));
        
END_IF

    2
:    (* коннектимся и сидим в этой ветке пару секунд пока не пройдёт коннект *)
        IF     
connect_counter 0 THEN
            SysSockConnect
(sockADR(srv_adr), SIZEOF(srv_adr));
        
END_IF;

        
connect_counter:=connect_counter+1;
        IF     
connect_counter connect_pause THEN
            connect_counter
:=0;
            
network_status:=3;
        
END_IF

    3
:    (* посылаем запрос *)
            
GenPost(GenOutStringEnc());
            
sz_http_post_out:= LEN_string(http_post_out);
            
SysSockSend(sockADR(http_post_out),sz_http_post_outSOCKET_MSG_OOB);

            
network_status:=4;

    
4:     (* читаем сокет пока не встретим END *)
        
byte_r:=SysSockRecv(sockADR(http_otvet), 512SOCKET_MSG_OOB);

        IF 
FIND(http_otvet'END' ) > 0 THEN (* нашли END значит всё окответ получили *)
            
network_status:=0;
            
http_otvet_prev:=http_otvet; (* сюда сохраняем ответ здесь будет блок его обработки*)
            
Explode(http_otvet_prev,15);
            
Command_executor();
            
out5:=TRUE;(*лампа связь есть вкл*)
            
p:=ADR(http_otvet);
            FOR 
i:=0 TO 511 DO
                    
p1:=p+i;
                      
p1^:=0;
            
END_FOR
        END_IF
    END_CASE
RETURN;