PC 和ARM9和虚拟机linux的互ping通,以及socket编程实现

网络编程实验,服务器/客户端

首先保证ARM9VMlinux ping 通,才能够进行socket编程通信。

问题解决过程记录:

一初始状态:

主机PC IP59.64.158.56

Submark255.255.252.0

默认网关:59.64.156.1

首先DNS211.68.71.4

 

但是VMlinux

IP192.168.74.129

Mark 255.255.255.0

默认网关:192.168.74.2

 

ARM9开发板

默认IP192.168.0.15

Mark 255.255.255.0

此时是初始状态,

我的ARM开发板ping 不通虚拟机和主机,但是主机和虚拟机之间可以互相ping通,为什么?

PC ping VMlinux ok

Vmlinux ping PC ok

其他的都ping不通。问题:

1)由于IP不在一个网段,所以ping不通,但是why PCVMlinux能够ping通呢?他们也不在一个网段。

 所有的防火墙和杀毒软件关闭,仍旧不行。

2)刚开始ARM没有连接网线,固然ping不通

二、后来找了开发板中自带的交叉网线,并将IP地址更改如下

PC 192.168.74.127

ARMifconfig eth0 192.168.74.126

Linux192.168.74.129 不变

此时用交叉网线将ARMPC相连,

PC ping ARM ok

ARM ping PC ok

其他的都ping不通。

所有的防火墙和杀毒软件关闭,仍旧不行。

三、交叉网线换做普通网线连接由路由器和ARM9。本机PC仍旧连接路由器

此时恢复了PCip:为了pc能上网

主机PC IP59.64.158.56

Submark255.255.252.0

默认网关:59.64.156.1

首先DNS211.68.71.4

发现pcVMlinux仍旧能ping

但是ARM9 VMlinux在一个网段仍旧ping不通。上网查询,需要将VMware的网络换做桥接模式:

VM->setting->Network Adapter NAT换成 Bridged->OK

 

 

很惊喜的发现:

ARM9 ping VMlinux OK

VMlinux ping ARM9 OK

此时由于主机PCip和上面两个不在一个网段,于是更改为:

PC 192.168.74.127

如下图所示:

 

此时所有的都能够ping通了

PCcmd

 

VMlinux超级终端:

 

ARM9 的超级终端:

 

四、过一段时间后,发现三者互相ping不通了

找了很久原因发现由于VMlinux变为桥接模式

此时的IP地址变化了:

 

 

变为了主机之前的网段。所以更改为:

 

此时三者即可互通。并且socket通信成功。

Socke编程过程:

1 利用SSHservice.cclient.c传输给VMlinux

2 service 采用本机编译:

#gcc service.c –o service

3 client采用交叉编译:

# /usr/local/arm/3.4.1/bin arm-linux-gcc client.c –o client

4 通过SSH将编译成功的client传送到windows PC

5 用超级终端的发送文件,将PC上的client传输给ARMtmp文件目录下

6 首先运行service

 

7 运行client 后面是服务器即 VMlinuxip地址。运行结果如步骤6的图。

 

第一次这么开心和坚持下来做实验,坚持就是胜利,胜利就是在想放弃的时候再坚持一下!

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值