OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4425|回复: 12

407+RAW LWIP客户端,无法连接阿里云服务器

[复制链接]

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
发表于 2018-3-18 17:07:38 | 显示全部楼层 |阅读模式
5金钱
本来已经调试好了,但是最近发现连接不上阿里云服务器,用的是学校的内网,但是板子接的是路由器然后接的学校的内网,初始化还有DHCP都是正常的,就是无法连接,阿里云服务器可以通过GPRS的AT指令拨号连接,没有问题,

最佳答案

查看完整内容[请看2#楼]

下载我们TCP Client的例子就可以测试的,远端IP,端口改成阿里云的IP和端口
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5136
金钱
5136
注册时间
2014-8-26
在线时间
1316 小时
发表于 2018-3-18 17:07:39 | 显示全部楼层
下载我们TCP Client的例子就可以测试的,远端IP,端口改成阿里云的IP和端口
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2018-3-18 17:07:56 | 显示全部楼层
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2018-3-18 17:41:44 | 显示全部楼层
  if(tcppcb->state != ESTABLISHED&&!LAN8720_Init())   //自动重连
  {
                tcp_sta1=1;
                lwip_comm_init();                         //lwip初始化
                tcp_client_set_remoteip();
                u4_printf("lwip_comm_init\r\n");
#if LWIP_DHCP
        while((lwipdev.dhcpstatus!=2)&&(lwipdev.dhcpstatus!=0XFF))//等待DHCP获取成功/超时溢出
        {
                lwip_periodic_handle();
        }
#endif
                tcppcb = tcp_new();
                if(tcppcb)                        //创建成功
                {
                        IP4_ADDR(&rmtipaddr,lwipdev.remoteip[0],lwipdev.remoteip[1],lwipdev.remoteip[2],lwipdev.remoteip[3]);
                        tcp_connect(tcppcb,&rmtipaddr,tcp_server_port,tcp_client_connected);  //连接到目的地址的指定端口上,当连接成功后回调tcp_client_connected()函数
                }       
  }       
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2018-3-18 17:43:06 | 显示全部楼层
//设置远端IP地址
void tcp_client_set_remoteip(void)
{
        u8 *tbuf,p1,p2,p3,p4,i=0;
        tbuf=mymalloc(SRAMIN,100);        //申请内存
        if(tbuf==NULL)return;
        p1=ch_search(".",1,IP1);
        p2=ch_search(".",2,IP1);
        p3=ch_search(".",3,IP1);
        p4=strlen((char*)IP1);
        ip1[0]=num_search(0,p1+1);
        ip1[1]=num_search(p1,p2);
        ip1[2]=num_search(p2,p3);
        ip1[3]=num_search(p3,p4);
        //前三个IP保持和DHCP得到的IP一致
        lwipdev.remoteip[0]=ip1[0];
        lwipdev.remoteip[1]=ip1[1];
        lwipdev.remoteip[2]=ip1[2];
        lwipdev.remoteip[3]=ip1[3];
        myfree(SRAMIN,tbuf);
}
这个函数设置要连接客户端的IP
void lwip_comm_default_ip_set(__lwip_dev *lwipx)
{
        u32 sn0;
        sn0=*(vu32*)(0x1FFF7A10);//获取STM32的唯一ID的前24位作为MAC地址后三字节
        //默认远端IP为:192.168.1.100
        tcp_client_set_remoteip();//先选择IP
        //MAC地址设置(高三字节固定为:2.0.0,低三字节用STM32唯一ID)
        lwipx->mac[0]=2;//高三字节(IEEE称之为组织唯一ID,OUI)地址固定为:2.0.0
        lwipx->mac[1]=0;
        lwipx->mac[2]=0;
        lwipx->mac[3]=(sn0>>16)&0XFF;//低三字节用STM32的唯一ID
        lwipx->mac[4]=(sn0>>8)&0XFFF;;
        lwipx->mac[5]=sn0&0XFF;
        //默认本地IP为:192.168.1.30
        lwipx->ip[0]=lwipdev.remoteip[0];       
        lwipx->ip[1]=lwipdev.remoteip[1];
        lwipx->ip[2]=lwipdev.remoteip[2];
        lwipx->ip[3]=30;
        //默认子网掩码:255.255.255.0
        lwipx->netmask[0]=255;       
        lwipx->netmask[1]=255;
        lwipx->netmask[2]=255;
        lwipx->netmask[3]=0;
        //默认网关:192.168.1.1
        lwipx->gateway[0]=lwipdev.remoteip[0];       
        lwipx->gateway[1]=lwipdev.remoteip[1];
        lwipx->gateway[2]=1;
        lwipx->gateway[3]=1;       
        lwipx->dhcpstatus=0;//没有DHCP       
}
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-3-18 17:47:56 | 显示全部楼层
找个没有学校内网的地方试试。
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2018-3-18 18:25:45 | 显示全部楼层
zuozhongkai 发表于 2018-3-18 17:47
找个没有学校内网的地方试试。

以前也是学校内网环境下测试的,当时通过路由器是可以连接的,现在一样的程序和硬件就是IP换了下就不能连接了
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2018-3-18 18:26:38 | 显示全部楼层
zuozhongkai 发表于 2018-3-18 17:47
找个没有学校内网的地方试试。

不知大神有没有网口连接的例程让我试一下,我确定一下是内网问题还是什么其他问题
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2018-3-18 18:47:56 | 显示全部楼层
zuozhongkai 发表于 2018-3-18 17:47
找个没有学校内网的地方试试。

网线接口,绿灯常亮,黄灯闪烁,感觉是正常工作的,但是就是连接不上阿里云服务器
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2018-3-18 20:23:08 | 显示全部楼层
zuozhongkai 发表于 2018-3-18 17:47
找个没有学校内网的地方试试。

让老师查了一下,我连接的阿里云IP是公网IP,奇了怪了,以前可以连接上的啊....
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2016-2-23
在线时间
11 小时
发表于 2018-3-19 19:38:13 | 显示全部楼层
我觉得不是学校网络的问题,是不是你的阿里云防火墙的问题,用自己的电脑测试下
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2018-3-20 15:44:14 | 显示全部楼层
小白哈哈额好 发表于 2018-3-19 19:38
我觉得不是学校网络的问题,是不是你的阿里云防火墙的问题,用自己的电脑测试下

找到问题了,路由器有问题,拨号以后还是上不了网,后来重启路由器就好了,谢谢
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2018-3-20 15:44:27 | 显示全部楼层
login_FAE 发表于 2018-3-19 18:25
下载我们TCP Client的例子就可以测试的,远端IP,端口改成阿里云的IP和端口

路由器问题,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 21:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表