当前位置:  编程技术>移动开发
本页文章导读:
    ▪wifi学问相关术语        wifi知识相关术语 RSSI : Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。   BSSID: BSSID,一种特殊的Ad-hoc LAN的应.........
    ▪ SmartFoxServer项目完成小结        SmartFoxServer项目完成总结 总体来说,如果是想做一个比较简单的虚拟现实服务,拿sfs来做还是很方便的,省去了前期构造服务器网络,实现数据库接口,数据同步等等一些基础功能的时间,可以一.........
    ▪ 网站建设札记       网站建设笔记 select content_id,'''' || txt || '''' as txt,'''' || txt1 || '''' as txt1,'''' || txt2 || '''' as txt2,'''' || txt3 || '''' as txt3 from jc_content_txt; <Context path="" docBase="E:\suntak\Web" debug="0" privileged="tru.........

[1]wifi学问相关术语
    来源: 互联网  发布时间: 2014-02-18
wifi知识相关术语

RSSI :

Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。

 

BSSID:

BSSID,一种特殊的Ad-hoc LAN的应用,也称为Basic Service Set (BSS),一群计算机设定相同的BSS名称,即可自成一个group。每个BSS都会被赋予一个BSSID,它是一个长度为48位的二进制标识符,用来识别不同的BSS。其的主要优点是它可以作为过滤之用。

 

SSID:

SSID(Service Set Identifier)也可以写为ESSID,用来区分不同的网络,最多可以有32个字符,无线
 

  工作原理图

网卡通过连接不同的SSID(即AP)并输入相应AP的密码就可以进入不同网络,SSID通常由AP广播出来,通过Windows自带的扫描功能可以相看当前区域内的SSID。出于安全考虑可以不广播SSID,此时用户就要手工设置SSID才能进入相应的网络。简单说,SSID就是一个局域网的名称,只有设置为名称相同SSID的值的电脑才能互相通信。
BSSID 是指站点的 MAC 地址,(STA)在一个接入点,(AP)在一个基础架构模式, BSS 是由 IEEE 802.11-1999 无线局域网规范定义的。这个区域唯一地定义了每个 BSS 。在一个 IBSS 中,BSSID 是一个本地管理的 IEEE MAC 地址,从一个 46 位的任意编码中产生。地址的个体/组位被设置为 0 。通用/本地地址位被设置为 1 。

 WPA:

WPA 全名为 Wi-Fi Protected Access,有WPA 和 WPA2两个标准,是一种保护无线电脑网络(Wi-Fi)安全的系统,它是应研究者在前一代的系统有线等效加密(WEP)中找到的几个严重的弱点而产生的。


    
[2] SmartFoxServer项目完成小结
    来源: 互联网  发布时间: 2014-02-18
SmartFoxServer项目完成总结
总体来说,如果是想做一个比较简单的虚拟现实服务,拿sfs来做还是很方便的,省去了前期构造服务器网络,实现数据库接口,数据同步等等一些基础功能的时间,可以一上来就直奔主题,开发自己项目相关的功能.



    Sfs的接口封装也比较简单,基本上看到接口名就能知道是做什么用的,参数是什么意义,而且他的文档也比较详细,对于非服务器开发专业人员也比较方便.sfs的定义也主要在此,比如他最早支持的flash客户端api.



    而随着sfs的成功,也开始将目标转向了目前新兴的iphone, android, sillverlight, unity等 客户端.这次使用c# client api做了一个winform测试程序,使用起来也是非常的方便.





    第一次拿sfs做商业项目,也还是遇到了一些问题,总结一下,另外还有一些未完善的地方,后面再花时间继续实现.





    CustomLogin的处理在zone extension里,必须先join room才能使用xt message.所以需要先写一个zone extension,在这里处理登录验证,注意验证成功后需要向客户端发送room list, 客户端必须收到room list消息才能做后面的操作,这是sfs限制死了的.



本来我想在extension里让客户端验证成功后直接join room,未果,调试良久才发现,客户端未收到room list,不能join room.





    Sfs的user variables只支持bool, integer, string类型,其他类型的数据不能同步.这个问题困扰了我差不多一个小时,最后在客户端一步步跟踪属性同步过程时才发现,其他类型的variable都被忽略掉了.



    于是,为了同步float坐标数据,我不得不加上了float.toString(),数据量又大了不少.





    Sfs消息定义的方式,不要像sample里那样,直接写字符串名字,改用枚举或者常量定义.每个extension name和command name都只有一个字节,在枚举中也可以定义出128个,完全够用.



    这样可以省不少带宽占用量,可以在client上开启debug message开关,看一下一个简单的消息发送会占多少字节.





    如果想同时在eclipse和netbeans下对一个项目进行开发,注意文件编码的问题.eclipse下创建的文件默认编码为gbk,netbeans下创建的文件默认为utf-8,而在eclipse下导入文件时他并不会自动检测文件的编码,所以,你需要在文件的属性里手动设置一下编码方式.另外,netbeans下要在文件中显示中文字符只能使用utf-8,使用gbk会出乱码,如果出现此类错误,修改一下文件编码方式以及指定新的编码即可.





    要关于利用IDE编译环境.在项目最开始的一周里,我使用trace来进行调试,一次次的通过trace打印出中间变量,然后再修改代码,再启动服务器,再看trace信息……在我快要陷入崩溃绝望之时,终于,决定建一个好用的集成调试环境.在尝试eclipse失败后,我成功的在netbeans中打下了断点,单kh步跟踪,于是,整个世界变得清静多了……



    关于如何在netbeans中调试extension,可以参考我之前的一篇文章





    sfs中服务器与客户关通信的协议有三种:xml,json和raw string,使用json会比xml节省不少字节,但其仍然占用比较大的带宽开销.如果是数据交互量比较小的应用,这个问题不会太大,但对于即时战斗类MMO来说,可能会成为一个比较大的问题.尝试了一下使用raw string的方式传递结构体,但是没找到比较好的方法,以后有机会再继续,如果可能的话,结合google proto buffer和raw string方式,将会是一个比较好的方案.





    在处理extension message时,按照示例所提供的方法,先取出cmd,然后使用equal的方式一个个进行比较,然后转到对应的处理函数.对于消息种类比较小的应用来说还没发现问题,但是对于有大量自定义消息的应用,这里就需要修改一下了.





    Sfs的db extension目前看起来只能在当前线程中处理,并且是阻塞式的,暂时没有尝试使用多个线程操作数据库,也没有把数据库操作改为异步操作.这也是未来需要进一步改进的地方.





    暂时不清楚SFS是否会为每个room开启一个单独的线程,或者是每个extension一个线程.如果zone里房间数比较多的话,分多个线程处理也是需要的,未来也需要继续考虑一下多线程的问题.





    Sfs的实现是把一个room当成了一个广播单元,这对于开房间类的游戏来说没有问题,但是如果相用它来做MMO就需要注意一下,因为user variables的同步是以整个room为单位的,也就是当一个房间里人数达到几百人甚至几千人的时候,某个玩家的进入和退出房间消息,属性修改消息的广播量都会是巨大的.但是在没有源码的情况下想要修改这个不大容易,也就是限制了sfs的应用环境.

    
[3] 网站建设札记
    来源: 互联网  发布时间: 2014-02-18
网站建设笔记
select content_id,'''' || txt || '''' as txt,'''' || txt1 || '''' as txt1,'''' || txt2 || '''' as txt2,'''' || txt3 || '''' as txt3 from jc_content_txt;



<Context path="" docBase="E:\suntak\Web"
        debug="0" privileged="true" reloadable="true">
				 
		    </Context>




D:\MySQL\Data\my.ini
[mysqld]
skip-grant-tables

source d:\1.sql
set names utf8
show variables like 'character%'


public static void main(String[] args) {
		String d = "D:/MySQL";
		File f = new File(d);
		File[] files = f.listFiles();
		for (File file : files) {
			if (file.isFile() && file.getName().endsWith(".sql")) {
				System.out.println("source " + file.getName());
				System.out.println(file.getName().substring(
					0, file.getName().lastIndexOf(".sql")));
			}
		}
	}


to_date\('\w{2}-\w{2}-\w{4}\s\w{2}:\w{2}:\w{2}',\s'dd-mm-yyyy hh24:mi:ss'\)
匹配



'2011-01-03 21:37:38'




    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
编程语言 iis7站长之家
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3