在windows xp中,不需要使用使用短信猫和AT指令集提到的accessport工具,因为有自带的工具:超级终端,在附件中:
和accessport的区别就是,必须选对比特率,否则会打不出字来,或者打出的乱码。accessport可以自动扫描合适的比特率。wavecom短信猫的比特率是115200。
运行的效果类似:
rxtx的动态连接库不支持64位系统,还不知道是否在64位linux下是否也有问题,或者linux下可以自己编译本地库。
测试了win7 64位系统下:
短信猫是wavecome的,通过AT指令集的命令:
AT+CGMI
查看到短信猫的信息:
WAVECOM MODEM
查看软件版本命令:
AT+CGMR
看到的信息
640d09gg.Q2406B 1273604 091103 18:26
要执行at指令集,需要做以下几步:
- 确保短信猫已经连接到系统,我的是windows7 64位系统,以前担心不支持,是多余的,我手里的短信猫是USB接口的,通过USB模拟COM口,可以在系统的设备管理器中看到:
- 安装串口登录的工具,我这里安装的是accessport,其实putty就可以。下载accessport地址:http://dl.pconline.com.cn/html_2/1/135/id=4643&pn=0.html,安装后选择串口号就可以连接上了,比如我这里是com2,连接后输入AT,回车(必须有这个),然后按ctrl+回车(表示发送到短信猫),看到OK字样就说明连接和通信正常了。
这里java操作sqlite3数据库,用的是java编写最简单的sqlite程序的方案。
目前测试可用的方式:
statement.setBytes(i++, outputStream.toByteArray());
其他方式,比如setBlob,或者setInputStream方式,都会报告抽象方法错误(AbstractMethodError)。说明该sqlite3驱动没有支持这些方法。
那么,setBytes的缺点是,二进制数据必须作为字节数组一次性的加载到内存,增加虚拟机的内存消耗,对于大图片,很容易引起OOM。
一个需求是将其他格式文件转换为png格式,这样才能被iphone使用,据说iphone能在程序中加载的只有png格式。
代码很简单,无需使用imagemagick这样的重量级工具。
File file = new File("c:\\b.png");
BufferedImage image=ImageIO.read(file);
File pngFile=new File("c:\\b1.png");
ImageIO.write(image, "PNG", pngFile);
默认情况下,maven做package的时候,只是项目程序编译打包到一个jar文件中,其他类库,需要引用到classpath里面去,这对于桌面应用很麻烦。
maven提供了将所有类库打在一个包里面的办法。见:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>welcome.ExportConsole</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
这里还设置了程序入口,main方法的类。
sqlite是c写的,没有官方的操作sqlite的java api。如果要使用Java编写sqlite代码,只能使用第三方的类库。目前我找到的有两种:
- SQLiteJDBC,http://www.zentus.com/sqlitejdbc/,这是一个纯Java的实现,只需把类库导入就可以使用,很方便,缺点嘛,就是慢一些;
- SQLite Java Wrapper,http://www.ch-werner.de/javasqlite/,安装的时候需要本地库,比如windows下的dll文件,和SQLiteJDBC的优缺点相反。
考虑到我们项目的需求,用SQLiteJDBC就够了。很小的项目,就是将xml文件导入生成sqlite db文件,因此也就不用什么maven和ant了。
eclipse项目的结构。
适用于登录到远端的内网做限制在该内网的操作。
服务器还是ubuntu server,安装pptpd:
sudo apt-get install pptpd
需要对pptpd做一些配置:
sudo vim /etc/pptpd.conf
在该文件中加入:
localip 10.100.0.1
remoteip 10.100.0.2-10
localip表示VPN服务器端的ip地址,这个地址和服务器目前的地址无关,比如目前服务器地址是10.166.33.22,是虚拟出来的网络。
remopteip是给vpn用户连接的ip池。
有的时候,莫名其妙的主机占据了你的ip地址。怎么办呢?如果是在linux下,可以试试这两个工具:
- nbtscan
- nmap
nbtscan,可以这样:
nbtscan 10.122.22.44
可能会看到类似下面的数据:
Doing NBT name scan for addresses from 10.167.33.154
IP address NetBIOS Name Server User MAC address
——————————————————————————
10.122.22.44 MARCAS-PC <server> <unknown> 00:18:f3:d1:6f:f2
日志引用
使用squid服务器,可以改善web访问速度。官方网址见:
在ubuntu server下安装很简单:
sudo apt-get install squid
启动和关闭squid:
sudo /etc/init.d/squid restart
这是重启,关闭和启动分别是stop和start。
squid的配置文件在:
/etc/squid/squid.conf
可以根据自己需要做相应的配置,至于我现在的情况,需要修改端口的配置、监听ip地址(因为是多ip主机),做简单的基于用户名和密码的认证,防止其他不相干的人使用这个代理服务器。