SymbianOS Series60以太网TCP连接的配置和使用

  这段时间要做个TCP连接的游戏,所以进行了以太网连接的测试。我用的S60版本是S60_2nd_FP3。测试中用了两个例子:Sockets和IPoverBT。Sockets例子可以对任意IP和任意端口发起连接,并对建立的连接发送键盘输入的字符。IPoverBT定义了默认的服务器端和客户端,服务器端监听99端口,客户端向服务器端发起连接请求,如果连接成功则发送一串数字,服务器端收到数字后显示出来。

测试了很久,不同的S60模拟器之间要建立成功连接感觉挺复杂的。

  局域网两台主机上的模拟器之间建立连接:
 
  我用的是实验室的局域网,通过交换机连到教育网。主机的IP是自动获取的。设A主机上的模拟器为EpocA,B主机上的模拟器为EpocB。EpocA和EpocB的IP都设成自动获取。值得注意的是,EpocA和EpocB都有自己模拟的网络适配器,所以他们都自动获取了自己的IP地址,且和主机A、B的IP地址不同。我们在控制台下(运行中输入cmd)用netstat –a方法可以看到主机上的TCP连接状态,但是看不到模拟器绑定的端口,就是因为模拟器和主机的IP不同,而控制台只能看到主机的IP。由于模拟器IP时自动获取的,我不知道怎么察看其IP,于是我在主机A上打开了一个自己用MFC写的Win-socket程序,该程序绑定700端口并监听。然后用EpocB上的Sockets程序连接主机A上的700端口,在主机A上的控制台下通过netstat –a看到连到700端口的EpocB的IP。同样也可以这样看到EpocA的IP。然后在EpocB上打开IPoverBT的服务器端,在EpocA上打开IPoverBT的客户端(在代码中把客户端的IP改成EpocB的IP),客户端向服务器端建立连接并发送数据,连接成功。

  在一台主机上用两个模拟器建立连接:

  为了编程和测试方便的需要,我们需要在一台主机上用两个模拟器来建立连接。首先要建立模拟器的一个备份,比如把S60_2nd_FP3路径下的文件复制一份到Copy_S60_2nd_FP3,这样我们就能启动两个模拟器了,记为EpocA和EpocB。设置模拟器的以太网设置:例如把EpocA设为192.168.0.1,把EpocB设为192.168.0.2,子网掩码都是255.255.255.0。然后把主机IP设为192.168.0.3,子网掩码255.255.255.0(主机如使用自动获取两个模拟器连不上)。就这样就可以建立连接了,但是在EpocA上启动IPoverBT的服务器,在EpocB上启动IPoverBT的客户端却连不上。我在主机上启动之前提到的我用MFC写的Win-socket程序,然后EpocA用Sockets例子去连接主机的700端口,连上了。然后同样用EpocB去连主机的700端口。然后再分别启动EpocA和EpocB的服务器和客户端,连接成功。(我分析了一下,因为EpocA和EpocB都有自己模拟的网络适配器,且这两个网络适配器都需要主机的网络适配器(192.168.0.3)来中继数据,但是模拟的网络适配器毕竟是虚拟的,它们不会自动获得网络路由情况,启动Epoc之后它们并不知道192.168.0.3的存在,所以用EpocB去连EpocA当然找不到,当他们分别与192.168.0.3:700连过后知道主机IP的位置,才能够让其中继数据。不过奇怪的是,我只让EpocA去连了192.168.0.3:700,EpocB直接去连EpocA,也能连上。)

  注:测试过程中有的时候会返回SocketEngine错误,-34是端口不可达,-191是IP不可达。

             每次修改了模拟器的以太网配置要重起模拟器才有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值