RTOS通过TCP连接到本地服务器,但不连接到远程服务器

时间:2011-11-03 18:57:20

标签: tcp remote-server

我正在使用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 ;

我试过两个不同的远程服务器,一个用谷歌,另一个用。

作为注释:我能够ping两个,并且两个端口都是打开的。

我想知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

我是@alexfontaine的大家,我们发现这个问题实际上是由我们办公室的网络设置引起的,与上面的连接代码无关。

看到这个问题 DHCP IP address have access to the internet but static IP address don't behind a router

我没有删除这个问题,而是回答另一个可能有这个问题的人的问题。