F746Discovery LWIP Netconn链接PC服务器正常,链接网络服务异常

2019-07-14 18:28发布

问题描述:使用STM32F746Discovery开发板,使用FreeRTOS,LWIP协议,Netconn API在开发板上建立一个TCP客户端去访问远端服务器,在PC上使用网络助手模拟一个远端网络服务器,开发板能够正常连接收发数据,但是,直接将连网的网线插到开发板上,给网络服务器发送特定数据后却收不到服务器返回的数据。
请教各位大神和版主,这种可以和本地pc进行客户端服务器通信但是不能和网络服务器进行通信的问题是什么造成的?谢谢大家!!


建立TCP客户端,连接远端服务器的代码如下:
struct netbuf *TCPRecvbuf;
struct netbuf *buf;
static void http_server_netconn_thread(void *arg)
{
        int i=0;
        char *string[200];
        void *data;
        uint16_t len;
  struct netconn *conn;
  err_t myerr,recv_err;
  struct netbuf *TCPNetbuf;
        ip4_addr_t serverip;
        char Text[] ="GET /BDKJ HTTP/1.0 User-Agent: NTRIP GNSSInternetRadio/1.4.10 Accept: */* Authorization: Basic dXNlcjpwYXNzd29yZA== ";

        IP4_ADDR(&serverip,180,149,145,238);
//        IP4_ADDR(&serverip,192,168,0,10);
       
        conn = netconn_new(NETCONN_TCP);
       
        netconn_bind(conn,NULL,NULL);
        osDelay(5000);
        myerr = netconn_connect(conn,&serverip,8000);
               
        TCPNetbuf = netbuf_new();


        netbuf_ref(TCPNetbuf,Text,sizeof(Text));
        netconn_write(conn,(void *)&Text,sizeof(Text),NETCONN_NOCOPY);       
        LCD_UsrLog ("%s ", Text);

        netbuf_delete(TCPNetbuf);
//        osDelay(1000);
        while(1)
        {
                while(( recv_err = netconn_recv(conn, &buf)) == ERR_OK)
                {
                        do
                        {
                                //Get the data pointer and length of the data inside a netbuf.
                                netbuf_data(buf, &data, &len);
                                memcpy(string,data,len);
                                LCD_UsrLog ("The Receive data is: %s ", string);
                                memset(string,0,len);
                        }
                        //Move the current data pointer of a packet buffer contained in a netbuf to the next part.
                        while (netbuf_next(buf) >= 0);
                        netbuf_delete(buf);
                }
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
易元空灭
1楼-- · 2019-07-14 21:32
你先去确定一下服务器有没有收到你发的数据,再确定一下服务器有没有给你返回数据?!不然先看下链接建立成功了吗?
zhe0010
2楼-- · 2019-07-15 02:07
看看服务器收到你的数据了吗?
收到了是不是格式有问题?
没收到检查下网络配置是否正确
cnm7
3楼-- · 2019-07-15 02:12
 精彩回答 2  元偷偷看……
chuidi1995
4楼-- · 2019-07-15 07:45
问题已经解决了吗?解决方法是什么?

一周热门 更多>