Chinaunix首页 | 论坛 | 博客
  • 博客访问: 351710
  • 博文数量: 82
  • 博客积分: 3353
  • 博客等级: 中校
  • 技术积分: 742
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-20 19:13
文章分类

全部博文(82)

文章存档

2015年(1)

2014年(1)

2013年(1)

2012年(12)

2011年(3)

2010年(25)

2009年(37)

2008年(2)

我的朋友

分类: LINUX

2009-07-01 18:24:14

    测试平台是PC上的ubuntu8.04利用无线网卡(Asus WL-167g) 与装有fc9(虚拟机)的笔记本(自带无线网卡)测试通信。
    昨天,编译好了无线网卡的驱动,本来打算在另一台虚拟机上再编译一个内核树的,但是,没成功,可能跟在虚拟机里的有关,曾经提示说时间不对。想着另一台是笔记本,跟我的无线网卡可以通用一个无线网络,就算是局域网了,IP地址是同一个网段的,直接用IP地址通信的,于是就算了,不再编译内核。
    今天开始写例程,从网上找的编译不过,发现自己的ubuntu居然是没有编译环境的,那些个头文件阿什么的全部找不到。试着搭建,居然还是问题很多,下载不了,罢了,直接用别人写过的东西,是可以用的。
    虽然拿到的可执行文件是正确的,但是在测试中还是发现了点问题。
    刚开始时,我自己的PC这边作为客户端,另一台的虚拟机作为服务端。是同一个网段的,但是就是不行(每次都是在connect()时出错)。(当时也没想过换个方向试试,就傻傻的认为是不行的)后来在我与另一个同学之间测试,(两边都不是虚拟机)测试成功了,此时发现原来我自己的FC9与UBUNTU系统的IP地址不一样(其实对整个测试没什么影响^_^)。到此才证实,让我相信程序是没问题的。于是,又回到ubuntu中。
    就在此时,突然一下灵感,是不是可以我这作为服务端,虚拟机作为客户端呢?于是,我又想:虚拟机的IP地址跟他的主机的IP地址是否一样呢?
    赶紧去验证,发现主机的IP跟虚拟机的IP地址还真是不一样。终于发现自己为什么开始一直无法成功了。
    从虚拟机的#ifconfig  结果来看,虚拟机上的网络设备并不是无线网卡,虽然是在笔记本上的,(笔记本是通过无线网络工作的)。再比对主机跟虚拟机的IP地址,是同一个网段,但是IP地址是不同的。路由器只向外提供了2个IP地址(只有两个人在用),但是此时我却跟貌似是第三个的同网段地址通信,当然不会成功(因为我测试时搜索的就是那个第三个IP地址)。但是如果我的PC作为服务端,虚拟机作为客户端,当他向我请求连接(connect())时,是可以成功的。虚拟机的网卡是根据实际的物理网卡虚拟出来的,要发送接收数据也是通过物理网卡的。对外,也就是相对整个路由器所在组建的局域网来说,虚拟机是不存在的,虚拟机的IP也是不存在的。当我作为服务端时,我所通信的对象(客户端)的IP地址居然是虚拟机的IP(从测试的结果看出来的)。
    但是,为什么我向虚拟机连接时不通呢?难道是我测试时弄错了?
    以下是自我安慰的设想,如果我要向虚拟机请求链接,那么路由器是不认我所要求的IP的,所以就不通了(此处有点遗憾,没有做我作为客户端向笔记本请求的测试)。
    根据“桥接”(所用虚拟机的网络访问方式),虚拟机跟主机处于同一IP网段,但是桥接是连接两个局域网的。
    最后的结论就是PC作服务端,可行;虚拟机作服务端,不可行。

以下是客户端(虚拟机的信息):
[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:05:35:33 
          inet addr:192.168.1.113  Bcast:255.255.255.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe05:3533/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6037 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6186 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6676379 (6.3 MiB)  TX bytes:653965 (638.6 KiB)
          Interrupt:18 Base address:0x2000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1514 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1514 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:79128 (77.2 KiB)  TX bytes:79128 (77.2 KiB)

[root@localhost ~]# cd /zyk/
[root@localhost zyk]# ls
client  client.c  client.c~  server  server.c  test
[root@localhost zyk]# ./client
parameter
[root@localhost zyk]# ./client 192.168.1.114
serverIP:192.168.1.114
hello,world

以下是服务端的一些信息:
zlm8715@zlm8715-desktop:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:19:db:62:71:20 
          inet addr:192.168.67.45  Bcast:192.168.67.255  Mask:255.255.255.0
          inet6 addr: fe80::219:dbff:fe62:7120/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:1016 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:96241 (93.9 KB)  TX bytes:7831 (7.6 KB)
          Interrupt:220 Base address:0xa000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1887 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1887 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:94412 (92.1 KB)  TX bytes:94412 (92.1 KB)

rausb0    Link encap:Ethernet  HWaddr 00:23:54:71:ca:38 
          inet addr:192.168.1.114  Bcast:255.255.255.255  Mask:255.255.255.0
          inet6 addr: fe80::223:54ff:fe71:ca38/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1111 errors:0 dropped:0 overruns:0 frame:0
          TX packets:96 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:127819 (124.8 KB)  TX bytes:9782 (9.5 KB)
zlm8715@zlm8715-desktop:~/network_p/rqh/2$ ./server
connect from 192.168.1.113
##服务端的显示的连接请求是从192.168.1.113发出的
阅读(790) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~