TCP error

Hello All!

I can send TCP Packet from BBB from console:

echo " 11111" > /dev/tcp/81.23.XX.XX/5555

And it is working correct.
When I try to send TCP from c++ application, I can’t connect to server( Timeout error). Eth scheem:
BBB(192.168.1.7 → MyRouter(static IP) → … → … → ServerRouter(81.23.XX.XX) → Server(192.168.4.55)
My PC(192.168.1.2) → MyRouter
But if I run server software in my PC, TPC packets from BBB to My PC works.
Why?

`
BBTcpErrorCode BBTCPClient::connectToServer(string serverIpAddr,
int serverPort) {
//создаем сокет
LOG(“Create socket…”);
if ((m_socket = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
return BBTCP_SOCKETERROR;
}
LOG(“Socket created!”);

/* Обнуляем переменную m_addr и забиваем её нужными значениями /
bzero(&m_addr, sizeof(m_addr));
m_addr.sin_family = AF_INET; // обязательно AF_INET!
m_addr.sin_port = htons(serverPort); // 0 - выдать порт автоматом
/
Переводим адрес в нужный нам формат */
if (inet_aton(m_IpAddr.c_str(), &m_addr.sin_addr) == 0) {
LOG_INT(“Error assign IP ADDR!”, errno);
return BBTCP_ADDRERROR;
}

const int on = 1;
setsockopt(m_socket, SOL_SOCKET, SO_REUSEADDR, &on, sizeof on);

/* Биндим сокет /
if (bind(m_socket, (struct sockaddr
) &m_addr, sizeof(m_addr)) < 0) {
LOG_INT(“Error bind socket!”, errno);
return BBTCP_BINDERROR;
}

/* Обнуляем переменную s_addr и забиваем её нужными значениями /
bzero(&s_addr, sizeof(s_addr));
s_addr.sin_family = AF_INET;
s_addr.sin_port = htons(serverPort);
/
Переводим адрес в нужный нам формат */
if (inet_aton(serverIpAddr.c_str(), &s_addr.sin_addr) == 0) {
return BBTCP_ADDRERROR;
}

if (connect(m_socket, (struct sockaddr*) &s_addr, sizeof(s_addr)) < 0) {
return BBTCP_CONNECTERROR; // ← When I try to send to 82.XX.XX.XX this error arise after ~ 1 minute ( errno = 101 – timeout )
}

return BBTCP_OK;
}
`

No ideas? :frowning: