??xml version="1.0" encoding="utf-8" standalone="yes"?>
XML正快速成Z中间层传送数据到桌面的工P׃XML的数据可以通过中间层代理与多种后端Q数据库Q源集成Q目前绝大多数数据库刉商已全面支持XML技术,提供了各U强大功能处理XML数据?
Microsoft?NET围绕XMLq一核心提供了一个强大而快速的开发工具——C#Q它h前所未有的高开发效率,特别是在XML~程斚w?
C#提供了许多相关类处理XML数据Q如处理stream的类Q?XmlReader和XmlWriterQ?DOM的类QXmlNode、XmlDocument和XmlElement{? Xpath的类QXmlNavigatorQXSLT的类QXslTransform?
用C#~程实现昄XML文g中信息的Ҏ(gu)是?NET提供的标准类把XML文g内容d一个StreamReadercd象中,再用XmlDataDocumentcȝDataSet读XML的方法去读XML信息到DataSet中,DataSet再以DataView的方式赋l一个Web Form上的DataGridQ最后由DataBind昄数据Q具体实C码如?
using System.Xml;
//处理XML必须加的NamespaceQ还需在References中加System.XML.Dll
using System.IO;
//读XML文g必须加的Namespace
然后在Page_Load中加入如下代码:(x) protected void Page_Load(object sender, EventArgs e){
string datafile="guest.xml" ;
//假设XML文g名ؓ(f)guest.xml
StreamReader tyj=new StreamReader(Server.MapPath(datafile));
XmlDataDocument datadoc = new XmlDataDocument();
//创徏该对象ؓ(f)了读取XML
datadoc.DataSet.ReadXml(tyj);
//dguest.xml文g内容
DataGrid1.DataSource = datadoc.DataSet.Tables[0].DefaultView;
//讄DataGrid数据?br />
DataGrid1.DataBind();
//l定
datadoc=null ;
//释放资源
tyj.Close();}
//释放StreamReaderc,q非帔R要,否则下次打开?x)显C文件已l被使用
对应于显C用的Web Form中DataGrid的功能,我们需要增加下面的函数Q?protected void OnSelectName(object sender,EventArgs e) {
Session["select_name"]=(string)DataGrid1.SelectedItem.Cells[1].Text.ToString();
//把选定?DataGrid某行中的一个单元中的?Name)存入一个会(x)话变量中Q以便下一는
Response.Redirect("xml_manage.aspx");}
//转到有增加删除功能的理?
Web Form加入以下代码:
代码的作用是当按了“选择”按钮后Q执行OnSelectName()中的E序Q把选定?DataGrid中某行中的一个单元中的?Name)存入一个会(x)话变量中Q然后{C一c?
在Web Form中增加相应的几个TextBox和一个用于提交的ButtonQ如本文附图所C,qؓ(f)qbutton增加如下代码Q?string datafile = "guest.xml" ;XmlDocument xmldocument = new XmlDocument() ;
xmldocument.Load(Server.MapPath(datafile)) ;
//把guest.xmldxmldocument?br />
DocumentNavigator navigator = new DocumentNavigator(xmldocument) ;
//最重要的类
navigator.MoveToDocumentElement() ;
navigator.Insert(System.Xml.TreePosition.FirstChild, XmlNodeType.Element, "Guest","","") ;//插入节点Guest
navigator.Insert(System.Xml.TreePosition.FirstChild, XmlNodeType.Element, "Name","","") ;
navigator.Insert(System.Xml.TreePosition.FirstChild, XmlNodeType.Text,"Name","","") ;
navigator.Value=Name.Text ;
//节点赋?br />
navigator.MoveToParent() ;
//q回父节?Guest
…?br />
//使用同类语句Q在元素Name下插入另一些元素如Country、E-mail地址和留a{?br />
xmldocument.Save(Server.MapPath(datafile));
//最后保存这个XML文档
navigator=null ;
xmldocument=null ;
//释放XML文档Q这样其他程序可以用?
上述代码使用DocumentNavigatorcd加元素和内容Q注意用后要释放资源?
删除选定记录Q对于你上面选择的节点,下面代码可查扑ֈ该节点ƈ清除选中的信? string datafile = "guest.xml" ;
XmlDocument xmldocument = new XmlDocument() ;
xmldocument.Load(Server.MapPath(datafile)) ;
//把guest.xmldxmldocument?br />
DocumentNavigator navigator = new DocumentNavigator(xmldocument) ;
navigator.MoveToDocumentElement() ;
navigator.Select("/Guests/Guest[Name='"+Session["select_name"]+"']");
//参数是Xpath
navigator.RemoveSelected();
//执行删除
xmldocument.Save(Server.MapPath(datafile));
//最后保存这个XML文档
navigator=null;
//释放c?br />
xmldocument=null ;
//释放XML文档Q这样其他程序可以用?
如需XML文g中所有信息清除,使用“navigator.RemoveChildren();”语句即可实现?
lg可知QC#~写XML应用E序不但快捷而且方便Q在~写ASP.NET数据库应用程序时Q用XML文g替代一些小的TableQ能减少许多数据库存取连接,也能让其他网l程序更易用这些数据?
目前XML的主要瓶颈在于文件系l的d或写入,故应使用更多内存和缓存方式,如果信息量不是巨大无比且修改量也较小Q而浏览量巨大的话Q用XMLҎ(gu)是很好的选择Q相反,如数据量巨大Q应考虑使用支持XML的数据库Q无Z使用ADO+q接其他数据库,q是使用SQL serverQC#中都有直接的cd数可让这些数据库中的信息直接和XML交互讉K?
]]>
]]>
[download=http://download.edohc.com/download/wapjianzhanjichu.rar]WAP建站基础教程.doc[/download]
[download=http://download.edohc.com/download/WAP开发问{大?rar]WAP开发问{大?rar[/download]
]]>
GSM的特?/b>
在GSMpȝ中,每个载频信道带宽?00KHzQ每?个时隙,即理Z可同时ؓ(f)8个用h供传输通道Q时隙长?.577msQ每帧时?.615ms。WCDMApȝ作ؓ(f)W三代无U网l的主要标准之一Q将高速移动接入和Z互联|协议的服务l合hQ在提高无线频率利用效率的同Ӟ为用h供内Ҏ(gu)丰富的无UK信服务。WCDMA的多址接入方式为CDMAQ即码分多址接入方式Q它是在扩频通信技术上发展h的一U移动通信多址接入技术?
原理是基于扩频技术,需传送的h一定信号带宽的信息数据Q用一个带宽远大于信息带宽的高速伪随机码进行调Ӟ使原数据信号的带宽被扩展Q再l蝲波调制ƈ发送出厅R利用不同伪随机码序列之间的自相关特性和互相关特性,接收端作相关处理Q把宽带信号q原成原信息数据的窄带信号即解扩。不同用户分配不同的扩频码作为区分标志,辑ֈ在同载频内多用户互不q扰且同旉信的目的。在WCDMA|络中,一个蝲频的带宽?MHz。由于CDMA接入方式h很好的抗q扰能力Q它的各个小Z用相同的载频?
WCDMApȝ是基于CDMA接入方式的网l,其技术特Ҏ(gu)接近CDMAQ因而与GSM存在诸多不同?
WCDMA的独特优?/b>
WCDMApȝ能提供比GSM质量高的语音服务Q同时具有高速率业务、很好的频谱利用率和非常强的Ud能力(软和更Y切换)。
同时Q由?G|络的综合数据业务的特点Q对|络设计提出了更高的要求。北늽l作为全球ؓ(f)C多的拥有5U无U接入技?TDMAQGSMQIS-95QW(xu)CDMAQCDMA2000)?qing)提供其产品的厂商之一Q在全球已ؓ(f)客户建立?00多个Ud|络Q其中包括分布在9个国家的30多个CDMAq营商徏讄CDMA|络Q?8个国?9个TDMAq营商徏讄TDMA|络以及(qing)31个国?0多个GSMq营商的GSM|络。
同时Q北늽l还在给6大泛Ƨ运营商?qing)北运营商W(wng)CDMA|络。从q些|络中,北电(sh)|络已积累了十分丰富的网l徏讄验和专长Q更深刻C?x)到WCDMA、GSM接入技术不同的内涵Q本文将从无U网l的设计规划角度来阐q这些不同点?qing)其?gu)U网l性能的媄响。
链\预算与上行覆?/b>
链\预算是无U网l规划的基本工具Q链路预的l果军_区的覆盖半径。我们首先来分析WCDMA和GSM在链路预方面的差别。
GSMpȝ中,上行链\和下行链路是基本q的,区半径可以由基站下行信L(fng)(sh)q高于某一设计要求的门限值决定。WCDMApȝ中,上行链\和下行链路的qq|络设计目标。基站功率在下行由小区所有用户及(qing)信o(h)׃nQ因而不?x)成盖受限链路。相反,手机发射功率是在规范中加以定义的。
׃手机发射功率有限Q上行链路则成ؓ(f)WCDMApȝ覆盖的受限链路。也是_(d)区的最大半径取决于功率上限最的一cL机。所以WCDMApȝ的链路预通常是指上行链\预算Q即从最大允许的上行损耗中除掉路径损耗以外的其他损耗和增益Q从而得到最大允许的路径损耗,再将最大允许的路径损耗值带入传播模型中Q得到预期的区覆盖半径和覆盖面U。应该注意,q样得出的小区半径是在无负蝲情况下的最大小区半径,即空载孤立小区的覆盖半径。由于WCDMA的覆盖区域不像GSM那样׃L(fng)(sh)q的l对值来军_Q它的覆盖与pȝ的负载或q扰水^相关。加入负载和邻近区q扰后,区半径?x)作相应的收~。在WCDMA的链路预中Q要引入一个参数称之ؓ(f)负蝲因子Q北늽l徏议取50%来作盖设计的负蝲余量。在|络设计中给所有小区均匀加入负蝲余量Q得系l在实际上非均匀的负载运行状态下仍然能通过区呼吸调整l持q。这是北늽l多qCDMA|络设计、运l、优化过E中的经验ȝ。这在GSM|络设计中是无须考虑的?/font>
]]>
<?xml version="1.0" encoding="gb2312"?>
<log-File fileName="ObtGcom.log"/>
<log-Driver logDriverName="ObtGcomLogDriver"/>
<log-Mappings>
<log-Mapping code="VPR1001" logType="warning" logMessage="not printer"/>
<log-Mapping code="VPR1002" logType="warning" logMessage="122System error"/>
</log-Mappings>
在程序中首先请include “ObtGcomCommonLog.h”,然后在需要时行日志处理的地方调用
ObtGcomCommonLog:: writeMesLog(CString code)Ҏ(gu)Qcode对应于LogMessage.xml中的code
在你需要的地方调用ObtGcomCommonLog:: writeMesLog(CString code)Ҏ(gu)O(jin)K了。而对于多语言。你只需要改?br />
<?xml version="1.0" encoding="gb2312"?>
<log-File fileName="ObtGcom.log"/>
<log-Driver logDriverName="ObtGcomLogDriver"/>
<log-Mappings>
<log-Mapping code="VPR1001" logType="warning" logMessage="打印要不?/>
<log-Mapping code="VPR1002" logType="warning" logMessage="pȝ错误"/>
</log-Mappings>
]]>
import java.util.*;
public class pop3server{
private static final int SERVER_PORT=110;
private static final int MAX_CLIENT=500;
private ServerSocket listenSocket=null;
private boolean keeprunning=true;
private InetAddress ip;
public static void main(String[] args){
pop3server server=new pop3server();
server.impserver();
}
public void impserver(){
Socket clientSocket=null;
try{
while(keeprunning){
clientSocket=listenSocket.accept();
int numThreads=Thread.activeCount();
System.out.println(numThreads);
manageconnection newhandle=new manageconnection(clientSocket);
Thread newhandlethread=new Thread(newhandle);
newhandlethread.start();
System.out.println("hello");
}
}
catch(IOException excpt){
System.err.println("Sorry ,Failed I/O:"+excpt);
}
}
public pop3server()
{
try{
listenSocket=new ServerSocket(SERVER_PORT,MAX_CLIENT);
}catch(IOException excpt){
System.err.println("SOrry to open port "+SERVER_PORT+":"+excpt);
System.exit(1);
}
}
}
/*follow is manage and process command class*/
class manageconnection implements Runnable{
private static final boolean AUTOFLUSH=true;
private Socket mySocket=null;
private PrintWriter out=null;
private BufferedReader in=null;
private boolean checkedpass=false;
private int msgnum=0;
private long[] msgsize=new long[100];
private long totalsize=0;
private String username=null;
public manageconnection(Socket newSocket){
mySocket=newSocket;
}
public void run(){
String nextline=null;
String password;
int check=0;
int strlen;
String content="Subject:hello";
String command=null;
String auth_user="user";
String arg1;
int arg2=0;
String arg3;
int i=0;
int count=0;
int time=0;
try{Thread.currentThread().sleep(10);
}catch(Exception e){
System.out.println(e);
}
try{
mySocket.setTcpNoDelay(true);
time=mySocket.getSoTimeout();
}catch(SocketException excpt){
System.out.println(excpt);
}
try{
out=new PrintWriter(mySocket.getOutputStream(),AUTOFLUSH);
in=new BufferedReader(new InputStreamReader(mySocket.getInputStream())
);
/*System.out.println("hello thread1");*/
out.println("+OK"+" TianHua's pop3 server");
try{
while(true){
if(check!=3){
try{
nextline=in.readLine();}catch(Exception excpt){
System.out.println("sorry:"+excpt);
break;
}
System.out.println(count+" "+nextline);
if(nextline.length()<4){
out.println("-ERR");
}else{
command=nextline.substring(0,4);
if(command.equalsIgnoreCase("user")){
i=1;
}
if(command.equalsIgnoreCase("pass")){
i=2;
}
if(command.equalsIgnoreCase("stat")){
i=3;
}
if(command.equalsIgnoreCase("quit")){
i=4;
}
if(command.equalsIgnoreCase("list")){
i=5;
}
if(command.equalsIgnoreCase("retr")){
i=6;
}
if(command.equalsIgnoreCase("dele")){
i=7;
}
switch(i){
case 1:if(check==0){
check=1;
if(nextline.length()<5){
out.println("-ERR");
}else{arg1=nextline.substring(5);
username=arg1;
out.println("+OK");
}
}else{out.println("-ERR");}
i=0;
break;
case 2:if(check==1){
if(nextline.length()<5){
out.println("-ERR");
}else{
arg1=nextline.substring(5);
password=arg1;
if(check(username,password)=='1'){
check=2;
/*msgnum=readmail(username);*/
out.println("+OK");}else{
out.println("-ERR"+" sorry auth failed");
check=0;}
}
}else{out.println("-ERR");}
i=0;
break;
case 3:if(check==2){
msgnum=readmail(username);
out.println("+OK"+" "+msgnum+" "+totalsize);
}else{
out.println("-ERR");
}
i=0;
break;
case 4:out.println("+OK BYE BYE welcome to TianHua's Mail System next
time");
check=3;
i=0;
break;
case 5:if(check==2){
out.println("+OK");
out.println(msgnum+" "+totalsize);
int ii,iii=0;
for(ii=1;ii<=msgnum;ii++){
out.println(ii+" "+msgsize[iii]);
iii++;
}
out.println(".");
}else{
out.println("-ERR");
}
i=0;
break;
case 6:if(check==2){
if(nextline.length()<5){
out.println("-ERR");
}else{
arg1=nextline.substring(5);
out.println("+OK");
System.out.println(arg1);
printmail(Integer.parseInt(arg1),username);
out.print("\r\n");
out.print(".");
out.print("\r\n");
boolean st=out.checkError();
System.out.println(st);
/*if(nextline.length()<6){
out.println("-ERR");
}else{
try{
arg2=Integer.parseInt(nextline.substring(5));
}catch(NumberFormatException except)
{
out.println("-ERR");
break;
}
if(msgnum==0){
out.println("-ERR no msg retrived");
}
if(arg2<=msgnum){
out.println("+OK");
out.println(content);
out.println("");
out.print(".");
out.println();
out.println(".");
System.out.println("msg finished");
}else{
out.println("no such msg");
}
}*/
}
}else{out.println("-ERR");
}
i=0;
System.out.println("retr finished");
break;
case 7:if(check==2){
out.println("+OK");
}else{
out.println("-ERR");
}
i=0;
break;
default:out.println("-ERR");
i=0;
break;
}
}
}else{
out.close();
in.close();
mySocket.close();
break;
}
}
}catch(NullPointerException excpt){
System.out.println("sorry "+excpt);
in.close();
out.close();
mySocket.close();
}
}catch(IOException excpt){
System.err.println("Failed I/O:"+excpt);
}
System.out.println("bye");
}
private void printmail(int msgnumber,String uname){
String msgdir="/webmail/userinfo/";
String msgfile=msgdir+uname+"/"+Integer.toString(msgnumber);
System.out.println(msgfile);
long filepoint=0;
try{
RandomAccessFile file=new RandomAccessFile(msgfile,"r");
long msglength=file.length();
while(filepoint<msglength){
String s=file.readLine();
out.println(s);
try{
Thread.currentThread().sleep(5);
}catch(Exception e){
System.out.println(e);
}
filepoint=file.getFilePointer();
}
}catch(Exception e){
System.out.println(e);
}
}
/*check your username and password*/
private char check(String user,String pass){
String[] arg=new String[2];
int c=0;
char value='0';
arg[0]="uname="+user;
arg[1]="pass="+pass;
try{
Process child=Runtime.getRuntime().exec("/disk2/ftp/pub/login"
,arg);
InputStream inn =child.getInputStream();
while((c=inn.read())!=-1){
value=(char)c;
}
inn.close();
try{child.waitFor();}catch(InterruptedException e){
e.printStackTrace();
}
}catch(IOException e){
System.err.println(e);
}
return value;
}
private int readmail(String uname){
String[] arg=new String[1];
arg[0]="username="+uname;
int[] msg=new int[3];
int i=0,j=0;
int msgnum=0;
int c;
try{
Process child=Runtime.getRuntime().exec("/disk2/ftp/pub/readmail",
arg);
InputStream inn =child.getInputStream();
while((c=inn.read())!=-1){
msg
=c-48;
i++;
}
inn.close();
try{child.waitFor();}catch(InterruptedException e){
e.printStackTrace();
}
}catch(IOException e){
System.err.println(e);
}
for(j=0;j<=i;j++){
msgnum=msgnum+msg[j];
}
System.out.println(msgnum);
int k=0;
try{
for(j=1;j<=msgnum;j++){
RandomAccessFile file=new RandomAccessFile("/webmail/userinfo/"+uname+
"/"+Integer.toString(j),"r");
msgsize[k]=file.length();
totalsize=msgsize[k]+totalsize;
System.out.println(msgsize[k]);
k++;
}
}catch(Exception e){
System.out.println(e);
}
System.out.println(totalsize);
return msgnum;
}
}
]]>
沉默但目光专注地看你说话的男人,一定内心丰富,q一ȝ男hQ因Zw上g有一U至命的场Q让你觉得他h了?
2.含着半口饮料微笑?
Z回应你,他哪怕嘴里含着咖啡或者美酒,也不急着咽下Q先反馈l你一个积极友好的W容Q这L(fng)l士举止Q当然会(x)让你心头生暖意与好感?
3.果决而内疚地摁灭烟火头?
只是因ؓ(f)你的出现Q正在抽烟的他,立即用这一动作Ƣ迎你,无声Q但那动作非常男性化Q这比ؓ(f)你脱外套拉椅子,更脓(chung)心也更有说服力?
4.“我q? 你随意”?
酒桌上说q话的男人,豪爽Q但不乏柔情Q非常善解h意,仿佛(jng)可以Z赴汤y火Q但背媄一点也不冰冗?
5.“不要在风口接电(sh)话”?
他在街头用手机给q方的女友打?sh)话时说了这么一句话Q风吹着他的脸,他眯着的眼Q很qh吧!
6.一下子强有力地把你拽到怀里?
一切不容置疑,男h的霸气通过一U温暖的手段淋柩臻地表现出来,你绝Ҏ(gu)l不了?
7.镜子前拉一下领带?
q时的男人很认真Q而且有种片刻的孩子气Q这很会(x)Ȁ发温存欲望?
8.下楼时吹了口哨?
那是一节妙但已成他记忆一部分的旋律,x喜Ƣ考究男h的唇齿,而那一刻,他会(x)满你的?
9.无辜地耸耸肩膀?
喜欢看男时的w体语言Q每一个细节都令你怜惜疼爱?
10.嚼口香糖的男人,有些玩世不恭Q特别是NBA的球星,L忙里偷闲地嚼着口香p,一U无所谓的感觉Q带点男人的“痞”?
11.在v滩上w着晒太阳的男h?
古胴色皮肤,qL(fng)的双|你是不是有种“活埋”他的冲动?
12.H然把R开Cw边Q摇下RH对你笑Q这是许多浪漫故事的开头?
13.在寒风中不停跳着{hQ双手插在口袋里Q领子高高竖赗这一刻,你是否希望你是他要{的人?
14.弯腰L一只摇ַ的狗?
有爱心的男hQ看h特别舒服?
15.掏钱买单的男人,q且_(d)(x)“不用找了!?
16.双手从背后变Z늎瑰的时候,你一定会(x)认ؓ(f)他是最好的术师。也总改变不了风向Q但可以改变你的心情?
17.他顽皮地跑,因ؓ(f)他手里拿着你吃剩的蛋糕Q他dƢ分享你的剩菜?
18.他做俯卧撑的时候,怸都是性感的汗珠。很有男人味?
19.q球向你走来?
zd龙,M(x)l你带去兴奋?
20.p演说前的停顿Q目光扫视全场?
大气的男人,很有慑服力?
21.坏坏地注视着你,光明正大地暖昧?
q种目光恭维Q是U深ȝȀ光式的抚摸?
22.灿烂地笑Q关键是露出两排z白清新的牙ѝ?
女h的唇Q男人的齿,都是性感利器?
23.额纹Q这是思考或疑问时的qQ?5岁以上男人,如果没有额纹Q那是如同外婆没有白发。眉宇处如果有个昂扬的“川”字Q那更有内容了?
24.奔跑或大步流星?
因ؓ(f)豪迈Q也是自信?
25.男h刮胡子时?
白色泡沫Q非常有遐想I间Q青亮的下巴Q如果还有美人沟的话Q那是种?x)让女h发出叫的性感?
26.正在换灯泡或钉钉子的男h?
动手能力强的男hQ有U让t实的感觉?
27.教孩子读书弹琴的时候(正式教师除外Q?
所以许多贵夫h?x)与其孩子的钢琴教师发生不u之恋Q原因就在此?
28.摘下手套与你握手Q热情,但手心不ѝ?
29.愉快地答应你L星或赴汤y火的时候?
30.男h快速做出决定的时候?
最怕男人拖泥带_(d)当然Q床上活动除外?
31.男h戴安全帽的时候。一U奇怪的俊朗?
32.接吻的男人?
那一LU贪婪的力Q仿?jng)要一手遮天,独吞天下?
33.单手持枪击的男人?
如果他是光头Q效果会(x)更好?
34.自嘲Q而且?x)让你一W?
35.I着一条不用皮带的牛仔裤,当然Q腹肌要发达?
36.咬紧牙着的时候,那是一张充满张力的刚毅的脸?
“用力”是男h的“第三”性征?
37.好的地勑ּ你的时候?
不会(x)勑ּ的男人是D缺的?
38.扔掉自己外套Q几乎是扑向你的时候?
39.兴奋得发抖到~氧的男人?
q时Q你一定会(x)产生一U崇高理惻I(x)Z灭火Q?
40.和他打赌Q他又输了,q一刻,他非常可爱,他是你胜利成果?
41.他说Q他q不׃的时候,q䆾力Q最h性,心为是?/p>