Настраиваю сокет

Код:
sock:=SysSockCreate(SOCKET_AF_INET,SOCKET_STREAM,SOCKET_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_ctrl));
Затем в цикле:

Код:
rcv_bytes_cnt:=SysSockRecv(sock_acc,ADR(rcv_snd_buf[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?