Я использую устройство RTOS, и при попытке подключиться через TCP к серверу у меня возникают некоторые необычные результаты.
При подключении к серверу в моей локальной сети, соединение в порядке, и я вижу пакеты, проходящие по Wire shark.
Однако при попытке подключиться к удаленному серверу, находящемуся за пределами моего домена, происходит сбой подключения с кодом ошибки:
TCP_ERR_NOSUCH_SOCKET (-4) --- Указывает, что вы пытались выделить сокет, который
не существует.
Это происходит во время функции connect ():
bool CTCP::Connect( const char * ipaddr, unsigned short port ) {
IPADDR ip = AsciiToIp( ipaddr ) ;
this->m_fdnet = connect( ip, INADDR_ANY, port, TICKS_PER_SECOND * 3);
if( this->m_fdnet < 0 ) {
CLogging::Debuglogf("[TCP] Error: Connection failed, error=[%d]", getsocketerror( this->m_fdnet ) );
return false;
}
return true ;
Я пытался использовать два разных удаленных сервера: один с Google, а другой -
Как примечание: я могу пропинговать оба, и оба порта открыты.
Мне было интересно, почему это происходит.