qemu例程bind的ip改为127.0.0.1出错

发布于 2019-06-12 08:56:55    浏览:1047
    /* 初始化服务端地址 */
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(5000); /* 服务端工作的端口 */
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");//INADDR_ANY;
rt_memset(&(server_addr.sin_zero), 0, sizeof(server_addr.sin_zero));
将INADDR_ANY改成了127.0.0.1之后运行程序出现Unable to bind的错误信息,127.0.0.1的地址可以ping通,lwip的配置自己没有修改过,不知道是什么原因了

查看更多

16 个回答
zhangjun
zhangjun 2019-06-12
This guy hasn't written anything yet
1,楼主用的哪个版本的rtt,哪个版本的lwip?
2,有运行过程的截图吗?最好是把
RT-Thread Components → Network → light weight TCP/IP stack → Enable lwIP Debugging Options

这个下面的所有包含TCP字符调试选项都打开再运行,再截图。
3,根据目前的信息猜测可能5000端口被占用了?或者tcp socket数量不足等。
aozima
aozima 2019-06-12
拒绝白嫖,拒绝键盘侠!
要打开loopback才有127.0.0.1吧
你用ifconfig看下,应该还没开 lo 网卡吧
zhangjun
zhangjun 2019-06-12
This guy hasn't written anything yet
aozima 发表于 2019-6-12 09:56
要打开loopback才有127.0.0.1吧
你用ifconfig看下,应该还没开 lo 网卡吧


感觉他既然可以ping通,那说明127.0.0.1是存在的。
sun_shine
sun_shine 2019-06-12
This guy hasn't written anything yet
zhangjun 发表于 2019-6-12 09:41
1,楼主用的哪个版本的rtt,哪个版本的lwip?
2,有运行过程的截图吗?最好是把



 \ | /
- RT - Thread Operating System
/ | \ 4.0.2 build Jun 12 2019
2006 - 2019 Copyright by rt-thread team
lwIP-2.0.2 initialized!

rtt版本是4.02,lwip版本是2.0.2。其他配置都是默认的,我没有修改
sun_shine
sun_shine 2019-06-12
This guy hasn't written anything yet
    本帖最后由 sun_shine 于 2019-6-12 10:23 编辑


aozima 发表于 2019-6-12 09:56
要打开loopback才有127.0.0.1吧
你用ifconfig看下,应该还没开 lo 网卡吧

msh />ifconfig
network interface device: e0 (Default)
MTU: 1500
MAC: 52 54 00 ff 31 af
FLAGS: UP LINK_UP INTERNET_UP DHCP_ENABLE ETHARP BROADCAST
ip address: 192.168.137.6
gw address: 192.168.137.1
net mask : 255.255.255.0
dns server #0: 192.168.137.1
dns server #1: 0.0.0.0
msh />

确实是没有lo网卡,但是loopback已经打开了
zhangjun
zhangjun 2019-06-12
This guy hasn't written anything yet
sun_shine 发表于 2019-6-12 10:18
确实是没有lo网卡,但是loopback已经打开了


你确定ping 127.0.0.1是通的?我测试了下,不开回环网卡的情况下是ping不通的,提示time out。
sun_shine
sun_shine 2019-06-12
This guy hasn't written anything yet
    本帖最后由 sun_shine 于 2019-6-12 15:38 编辑


zhangjun 发表于 2019-6-12 11:56
你确定ping 127.0.0.1是通的?我测试了下,不开回环网卡的情况下是ping不通的,提示time out。 ...

不开回环网卡是的调试信息:
msh />
msh />ifconfig
network interface device: e0 (Default)
MTU: 1500
MAC: 52 54 00 ff 31 af
FLAGS: UP LINK_UP INTERNET_UP DHCP_ENABLE ETHARP BROADCAST
ip address: 192.168.137.246
gw address: 192.168.137.1
net mask : 255.255.255.0
dns server #0: 192.168.137.1
dns server #1: 0.0.0.0
msh />ping 127.0.0.1
ping: from 127.0.0.1 icmp_seq=0 timeout
ping: from 127.0.0.1 icmp_seq=1 timeout
ping: from 127.0.0.1 icmp_seq=2 timeout
ping: from 127.0.0.1 icmp_seq=3 timeout
msh />


打开回环网卡时的调试信息:
msh />ifconfig
network interface device: e0 (Default)
MTU: 1500
MAC: 52 54 00 ff 31 af
FLAGS: UP LINK_UP INTERNET_UP DHCP_ENABLE ETHARP BROADCAST
ip address: 192.168.137.10
gw address: 192.168.137.1
net mask : 255.255.255.0
dns server #0: 192.168.137.1
dns server #1: 0.0.0.0
msh />ping 127.0.0.1
60 bytes from 127.0.0.1 icmp_seq=0 ttl=255 time=20 ms
60 bytes from 127.0.0.1 icmp_seq=1 ttl=255 time=0 ms
60 bytes from 127.0.0.1 icmp_seq=2 ttl=255 time=0 ms
60 bytes from 127.0.0.1 icmp_seq=3 ttl=255 time=0 ms
msh />tcps
tcpserv
msh />tcpserv
Unable to bind
msh />


打开loopback之后ping功能正常了,但是ifconfig只查询到e0网卡
用list_device设备查询也只有一个网卡:
msh />list_device
device type ref count
-------- -------------------- ----------
e0 Network Interface 0
sd0 Block Device 0
rtc RTC 0
uart1 Character Device 0
uart0 Character Device 2
msh />


zhangjun
zhangjun 2019-06-12
This guy hasn't written anything yet
sun_shine 发表于 2019-6-12 15:36
不开回环网卡是的调试信息:




所以说一开始没打开回环网卡时是没有ping通的。
打开回环网卡后我这边测试监听127.0.0.1没问题。
不过楼主干嘛只监听127.0.0.1,这意味着除了本机,其他主机没法连接。
sun_shine
sun_shine 2019-06-12
This guy hasn't written anything yet
zhangjun 发表于 2019-6-12 15:47
所以说一开始没打开回环网卡时是没有ping通的。
打开回环网卡后我这边测试监听127.0.0.1没问题。
不过楼 ...


可是我这边打开回环网卡,但是监听不成功
zhangjun
zhangjun 2019-06-12
This guy hasn't written anything yet
sun_shine 发表于 2019-6-12 16:02
可是我这边打开回环网卡,但是监听不成功


报错是什么?

撰写答案

请登录后再发布答案,点击登录
关注者
0
被浏览
1k

发布
问题

分享
好友

手机
浏览

扫码手机浏览