U盘可以分多个区的,详细参考fdisk 的帮助.
安装过程后不要忘记修复几个错误,也就是用vi命令修改文件就行了。
安装完成后用python2或者python2.7测试 没有问题就可以写Server程序。
root@Test:/# python2.7
Python 2.7.3 (default, Apr 12 2012, 13:34:28)
[GCC 4.1.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
root@Test:/#
一个简单的UDP 程序如下:
Server.py(其中ProcData就是数据处理过程,输入接收的数据,返回要发送的数据)
#udp server
import socket
host = ''
port = 8999
def ProcData(data):
if len(data)<=2:
return data
#add more code....
#print ProcData("020102020101")
server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server.bind((host,port))
print "Sever start at %s" %port
while 1:
msg,(addr,port) = server.recvfrom(1024,)
msgEx = ProcData(msg)
print msgEx+": got data %s from "%msg,addr,port
server.sendto(msgEx,(addr,port))
Client.py(其中host 是服务器地址,先用本地IP调试,等完成Server的部署以后再换成域名测试)
import socket
host='192.168.6.1'
#host='xxx.3322.org'
client = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
client.sendto( "02", (host, 8999) )
buf=client.recv(1024)
print "02 received: %s"%buf
完成上面的程序以后先在本地测试,没有问题就可以发布到路由器上了,发布的过程中发现一些问题,总结如下:
1. UDP Server自动启动,需要在"USB应用"->"USB设置"->挂载后运行脚本中输入
mount -o bind /tmp/mnt/OPTWARE/opt /opt
python2 /opt/proc/UDPServer.py &
2.防火墙相关的端口问题,默认是没有开启8999的,需要在"系统管理"->"脚本设置"->防火墙中输入以下脚本:
iptables -I INPUT -p udp --dport 8999 -j ACCEPT
没有问题重启路由器,用telnet进去ps看看有没有python的进程。如果进程没有问题,可以进行测试了,Client.py先用内网IP测试,再换域名测试(先要保证域名能正确解析)。
我在实现过程中,内网第一个脚本就好了,由于没有第二个脚本,外网一直测试不通过。
这次就测试到这里,设想这个UDP程序可以做一些加密注册验证之类的功能吧,以后有时间再研究写一个HTTP Server或者Web Services和XML RPC Server.