使用无线自组网共享互联网接入

目录 互联网产品, 无线和移动

在这个互联网已经渗透入每个角落的时代,GUCAS 的网络接入收费显得非常不合时宜:(二年级以上同学)每个月 25 元套餐,其中包括5G国内流量、2G 国际流量,国内流量超出部分按 10元/G 收费,国际超出部分按 1元/M 收费。幸好有了 IPv6 BT(IPv6 流量不计入收费流量),不然 GUCAS 的网络就是一个悲剧。

对于高年级同学来说稍微好一点的是,某些实验室会有免费的网络,还可稍解流量窘迫。但如果不下 BT、不看视频、不视频聊天的话,5G 每月也是用不完的,而且 25 元的价钱也并不便宜,所以很多高年级同学都是宿舍共用一个上网帐号。

共用上网帐号有几种方式:1> 使用路由器,这是比较简洁的方式,但是这样就无法使用 IPv6——目前的路由器一般不支持 IPv6 路由功能,因此需要使用特别的配置才能同时支持 IPv6;2> 使用代理,一台电脑作为主机,为另一台电脑开一个代理,这种方式可以使用 IPv6,但缺点是主机分配的 IP 可能变化,需要手动更新代理地址,而且部分软件并不能完美支持代理。

我这里尝试了另外一种方式,使用无线自组网共享互联网接入,只适用于两台都带无线网卡的电脑共享上网。简单点儿来说,就是让两台电脑无线网卡相连,其中一台(主机)将有线的互联网接入通过无线链路共享给另外一台(从机)。这种方案同样适用于那些家里有两台笔记本却只有一个网口的家庭,省了买路由器的钱。

注:下文使用操作系统平台为 Windows XP SP3。

首先,需要将主机的有线连接即“本地连接”设为可共享。具体方法是,在主机上右击“本地连接”,选择“属性”,进入“高级”选项卡,“选中 Internet 连接共享”中的两个复选框,即“允许其他网络用户通过此计算机的 Internet 连接来连接”和“允许其他网络用户控制或禁用共享的 Internet 连接”。

其次,将两台电脑进行无线自组网。无线自组网的建立方式根据网卡管理软件的不同可能有不同的方法,简单的来说就是建立一个两台笔记本之间的一个点到点的(不需要接入点的)无线连接。一个典型的配置是:

主机:
Ethernet adapter 无线网络连接:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.0.1
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :
从机:
Ethernet adapter 无线网络连接:

        Connection-specific DNS Suffix  . : mshome.net
        IP Address. . . . . . . . . . . . : 192.168.0.27
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.0.1

需要注意的一点是,两台电脑需要在同一个 Windows 工作组中,这里两台电脑的工作组都是 MSHOME。

如果对无线自组网不是很了解,以上两步可以通过软件来进行设定。联想有一款叫做“闪联任意通”的软件,配置起来相对简单好用,用它的“共享网络”功能即可做到以上两步。但是闪联任意通有一些BUG,会造成服务占用 CPU 过高。一旦配置成功之后,记住建立的点到点网络 SSID(一般以 PAN_ 开头),以后每次两台电脑都连接至该网络即可。不再需要闪联任意通的运行。

最后,将从机有线接口的 IPv4 功能禁用,将从机无线接口的 IPv6 功能禁用。具体方法是,在从机上右击“本地连接”,选择“属性”,在“常规”选项卡中的“此连接使用下列项目”选择框中的“Internet 协议 (TCP/IP)”前的复选框去掉,确定退出;在从机上右击“无线网络连接”(也可能是其它名称),在类似于上面的位置找到“Microsoft TCP/IP 版本 6”,去掉前面的复选框。

经过上面三步之后,就可以保证从机的 IPv4 的流量会走无线接口,使用主机共享的 IPv4 互联网接入;而 IPv6 的流量会走有线接口,使用本地交换机提供的 IPv6 互联网接入。第二步建立的点到点网络会保存到无线网络配置中,两台电脑开机只要打开无线,一般就会自动连接到该点到点网络,无需再进行额外的手动修改。(即便是使用代理的同学,由于无线的 IP 不会变化,这样做也能带来不用修改代理地址的好处。)

综上,这种方式可以完美地实现共享 IPv4 接入而又不影响 IPv6 连接。

心中一块大石落地

目录 安全, 无线和移动

从找到工作以来,我就在忙论文,因为中科院的硕士毕业是要发表论文的。还有半年临近毕业,已经火烧眉毛了,因此我一直生活在无法按时毕业的恐慌中,也不愿意在博客上多讲,可以发现我最近两个月的更新非常少。

今天是中期答辩的日子。因为没有文章,我很怕答辩时候被枪毙掉,那我只能延期毕业了。但是,昨天正在反复修改答辩幻灯片的时候,收到了一条天大的好消息,我投往 ICC 2010 的一篇文章被录用了,而且还是 oral session!ICC,IEEE 通信学会的旗舰会议啊,我这个小硕实在是太满足了,太满足了,顷刻间,我内牛满面!

再看看审稿意见,我不得不赞叹我的运气。三个审稿人,4444,4444,4434;修改意见里,一个是“没特别的修改意见”,一个是“文章太干巴,应该生动些”,只有最后一个提出了一个切实的修改意见。看到这样友好的评审结果,我又一次内牛满面!

于是乎,两篇论文,一篇已录用,我的中期答辩顺利通过。从目前来看,毕业已经不成问题,谢天谢地!我也总算不用再羞羞答答,敢挺直腰板说俺也是搞过科研的人了。

三星手机 Java 开发-Hello World 篇

目录 无线和移动, 编程

摘要:

这篇文章主要介绍了在 Windows 平台上使用 NetBeans 和 Samsung SDK 构建三星手机 Java 开发环境,建立和调试简单 Java 程序的过程。

目录:

1. 工具
2. 安装和配置开发环境
3. Hello World 程序
4. 在三星模拟器(Samsung Emulator)上调试
5. 结论
6. 参考文献

1. 工具

Windows XP: SamsungSDK 不支持 Windows Vista.

JDK version: 1.6.0_03: 这个版本不重要,自己去下载好了。

NetBeans IDE 6.01(Mobility) Chinese Edition:
http://zh-cn.netbeans.org/download/6.0/ml/netbeans-6.0.1-ml-mobility-windows.exe

Samsung Java SDK 1.0.2
http://developer.samsungmobile.com/Developer/resources/SamsungSDK/SamsungSDK_1.0.2.zip
这个版本的 SamsungSDK 支持的三星手机型号为:
D900 (D600, D820, T809)
E200 (E380, E390, E500, E780, E830, P200, T509)
E250
E590
E740
E790 (E490, E530, E570, E620, E720, E880)
E900 (D800, D830, D840, P900)
F500 (F500, P300, X820, Z370)
J600
L760 (Z140, Z150, Z170, Z230, Z240, Z240E, Z300, Z310, Z360, Z500, ZM60, ZX10, ZX20, ZV40, ZV60)
P310
U100
U600 (U300)
U700 (P910, P920, P940, Z400, Z540, Z560, Z720, ZV50)

2. 安装和配置开发环境

我不知道 JDK 是否必须安装的,因为我电脑里老早就安装上了,但是做 JAVA 开发嘛,JDK 总是需要的,所以建议首先安装 JDK。

安装完 JDK 之后,安装 SUN 公司的 JAVA 集成开发环境 NetBeans。为什么是 NetBeans 而不是 Eclipse?因为 SamsungSDK 官方支持 NetBeans。

当 NetBeans 安装完成后,接着安装 SamsungSDK。需要注意的一点是,由于 SamsungSDK 1.0.2 支持的 NetBeans 版本是 5.5,所以在安装过程中要选择是否安装 NetBeans 插件时,请选择否,因为我们使用的 NetBeans 版本是 6.01。

既然无法自动安装 NetBeans 插件,就需要我们在 NetBeans 中手动添加插件了。具体步骤如下:

一,从 NetBeans 菜单中选择“工具->Java平台”,进入 Java 平台管理器;(我们的 NetBeans 是中文版 *_*,请英文版用户自行理解。)
二,点击“添加平台”按钮,进入“选择平台类型”步骤,选择“Java ME MIDP 平台仿真器”,进入下一步;
三,在“选择要在其中搜索平台的目录”对话框中,选择 SamsungSDK 的安装目录,比如我的是 D:\Program\SamsungSDK,点击确定;
四,这时在“平台文件夹”对话框中会出现三个要检测的平台,将三个平台都勾选上,进入下一步;
五,在“已检测到的平台”对话框中,将三个平台都勾选上,选择“完成”,这样我们的开发环境就配置完成了。

3. Hello World 程序

下面介绍在 Samsung Java 开发环境下如何建立并在模拟器上运行一个 Hello World 项目:

一,“文件->新建项目”,在对话框中项目“类别”选择“Mobility”,然后在右侧“项目”中选择“MIDP 应用程序”,点击下一步;
二,将项目名字更改为“HelloWorld”,项目位置可以自行修改,比如我的就是 D:\J2ME,下面两个“设置为主项目”和“创建 Hello MIDlet”保留为默认值,进入下一步;
三,在“选择缺省平台”对话框中,“仿真器平台”选项选择为“SamsungSDK 1.0”,在设备下拉条中,选择目标平台,比如我的手机是 E908,和 E900 是一类,我就选择“SGH-E900”,其它选项保持不变,进入下一步;
四,在更多配置中用户可以自定义更多配置,刚开始使用可以保持不变,点击完成。

这样我们就建立了一个 Samsung Java 的 Hello World 项目,可以查看它的源代码。由于我们在配置时选择了“创建 Hello MIDlet”选项,此时的源程序已经包含了打印一个“Hello World”的功能,我们只需要在菜单中选择“生成->生成主项目”,即可生成 Hello World 项目。

生成项目后,在项目文件夹里可以找到 dist 目录,比如我的就是 D:\J2ME\HelloWorld\dist,这个目录里面包含了可以在 SGH-E908 上安装并运行的 JAVA 程序:HelloWorld.jar 和 HelloWorld.jad。看着很眼熟吧,对,这和普通的 JAVA 游戏形式是一样的,我们可以把这两个文件下载到手机里并安装它。(不同版本安装方法不一样)

SGH-E908 的安装方法是:先将 jar 和 jad 文件下载到手机的 other files 文件夹中,在待机状态下输入 *#9998*5282#,然后选 3,输入密码 235282,选择 jad 文件安装即可。

安装完程序后,我们可以在自己的 Java world 中找到它,运行后,屏幕上会打印出来一行字符:HelloHello, World! 这样,我们的第一个 Samsung Java 程序就成功了。

4. 在三星模拟器(Samsung Emulator)上调试

当然,我们写嵌入式程序不可能一次成功,总会有需要找 BUG 的时候,那么如何进行调试呢?仍然以我们 Hello World 程序为例:

一,先在程序中设置断点,在要设置断点的行前点击边框即可,比如我在 startApp() 函数中的 initialize (); 一行前设置了一个断点;
二,选择“运行->调试主项目”,就可以开始我们的调试了,耐心等待一会儿,会发现弹出了一个 E908 模拟器的窗口,窗口中写着:Select on to launch,因为只有唯一的一个 HelloMIDlet,所以我们直接选择右下角的 Launch,直接点 Launch 是没用的哦,你要点模拟器的手机键盘,作用和按下手机上某个键是一样的。
三,点下 Launch 之后,激活窗口会重新返回到 NetBeans 中, initialize (); 行前有一个右箭头,指代程序已经运行到断点,我们点“运行->继续”,程序就会继续运行,在模拟器中打印出:HelloHello, World!,并在左下显示 Exit 标志,表示程序运行结束。

如果在第三步产生问题,可能是由于在前面介绍中,我们先“生成主项目”造成的调试信息缺失导致的,可修改设置,更直观的方法是重新建立新项目并跳过生成主项目那一步,使用“运行->运行主项目”或者“运行->调试主项目”来生成主项目文件。

5. 结论

三星手机提供的开发环境在一定程度上还是比较易于使用的,这篇文件对三星手机开发环境的建立做了一个简要的介绍,提供了中文入门导引,降低了中文世界初学者学习的难度。

6. 参考文献

[1] Samsung SDK 1.0.0 Documentation