PDA

Просмотр полной версии : Работа с сокетами в ПЛК308



Sergey_Byk
04.10.2011, 10:45
Настраиваю сокет


sock:=SysSockCreate(SOCKET_AF_INET,SOCKET_STREAM,S OCKET_IPPROTO_TCP,serr);
tcp_adr.sin_family:=SOCKET_AF_INET;
tcp_adr.sin_port:=SysSockHtons(555);
tcp_adr.sin_addr.ulAddr:=SOCKET_INADDR_ANY;
PADDR := ADR( tcp_adr );
serr1:=SysSockBind(sock,PADDR,SIZEOF(tcp_adr));
serr2:=SysSockListen(sock,1);
sock_acc := sock;
param_ctrl:=1;
SysSockIoctl(sock_acc,SOCKET_FIONBIO,ADR(param_ctr l));

Затем в цикле:


rcv_bytes_cnt:=SysSockRecv(sock_acc,ADR(rcv_snd_bu f[0]),1024,SOCKET_MSG_OOB,serr3);
IF rcv_bytes_cnt>0 THEN
SysSockSend(sock_acc,ADR(rcv_snd_buf[0]),rcv_bytes_cnt,0,serr);
END_IF

...и ничего не происходит. тишина.
И почему SysSockBind может возвращать serr1=1?

Sergey_Byk
04.10.2011, 13:16
Уважаемая техподдержка, подскажите что-нибудь. Или посоветуйте иной способ соединения с ПЛК по езернету.