如何编写一个软件

2024-05-08 22:54

1. 如何编写一个软件

首先要从基本语言开始吧!我就是这样的,怎么说呢,计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。而汇编语言是里面较简单的,建议你借相关的书籍去看

如何编写一个软件

2. 怎么用java编写简单客户端程序

我这里有一个例子希望能够帮助你
 
public class Client{
private Socket socket;
try{
Socket socket=new Socket ("localhoast',8088);
 ip=InetAddress.getLocalHost();
  String localip=ip.getHostAddress();
  System.out.println(localip);
  String name=ip.getHostName();
  System.out.println(name);
}
catch(Exception e){
 
}
public void start(){
try{
  Run r2=new Run();
  Thread t1=new Thread(r2);
  t1.setDaemon(true);
  t1.start();
  
  Scanner sc=new Scanner(System.in);
 OutputStream os=socket.getOutputStream();
 OutputStreamWriter osw=new OutputStreamWriter(os);
 PrintWriter writer=new PrintWriter(osw,true);
 
    while(true){
     writer.println(sc.nextLine());
    }
 }catch(Exception e){
 
  
 }
  
 
 
}
public static void main(String args[]){
Client client=new Client();
client.start();
}
class Run implements Runnable{
 public void run() {
  while(true){
  try {
   InputStream is=socket.getInputStream();
   InputStreamReader isr=new InputStreamReader(is);
   BufferedReader br=new BufferedReader(isr);
   while(true){
    String str=br.readLine();
    System.out.println("服务器说:"+str);
    if("bye".equals(str)){
     System.out.println("再见客户端");
     System.out.println("聊天结束");
     
    }
   }
  } catch (IOException e) {
   e.printStackTrace();
  }  finally{
   try {
    socket.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
}
  }
       
 }
 }
}

3. 如何用API编写客户端程序?

如何使自己的客户端程序小于200k?请高手指点!

如何用API编写客户端程序?

4. 客户端软件的工具栏的测试用例怎么写

5楼写的太多了。呵呵要好好研读一下。谢谢。

5. 我用eclipse编写了程序 怎么在一个电脑上运行客户端和服务器端的程序啊

实现的方法和详细的操作步骤如下:
1、第一步,打开计算机上的eclipse软件,然后依次单击左上角的“File”-->“New”-->“Project”选项,见下图,转到下面的步骤。



2、第二步,完成上述步骤后,通过搜索找到Web项目,输入关键字web,可以快速查询该Web项目,见下图,转到下面的步骤。



3、第三步,完成上述步骤后,创建Web项目时,输入项目名称,然后完成构建,继续操作,见下图,转到下面的步骤。



4、第四步,完成上述步骤后,可以在Web项目中创建一个jsp文件,然后在“New”选项下选择“Other”选项来创建.jsp文件,见下图,转到下面的步骤。



5、第五步,完成上述步骤后,在文档的新界面中,选择“jsp File”选项,输入jsp文件的名称,然后将创建一个空的jsp文件模板,见下图,转到下面的步骤。



6、第六步,完成上述步骤后,如果index.jsp是Web项目中的主页,则默认情况下,系统将在访问期间搜索index.jsp文件,见下图,转到下面的步骤。



7、第七步,完成上述步骤后,就获得了想要的结果了,见下图。这样,就解决了这个问题了。



我用eclipse编写了程序 怎么在一个电脑上运行客户端和服务器端的程序啊

6. 如何让客户端程序 自动更新 版本

用C#实现软件自动更新思路

前言 

长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素。有很多企业用户就是因为这个原因而放弃使用C/S。然而当一个应用必须要使用C/S结构才能很好的实现其功能的时候,我们该如何解决客户端的部署与自动升级问题?部署很简单,只要点击安装程序即可,难的在于每当有新版本发布时,能够实现自动升级[3]。现在好了,我们的目标很简单,我们希望开发一个与具体应用无关的能够复用的自动升级系统。下面我为大家提供了一套可复用的用C#编写的自动升级系统。

2 实现软件的自动升级存在的困难

第一,为了查找远程服务器上的更新,应用程序必须有查询网络的途径,这需要网络编程、简单的应用程序与服务器通讯的协议。

第二是下载。下载看起来不需要考虑联网的问题,但要考虑下载用户请求的文件,以及在没有用户同意时下载大文件。友好的自动更新应用程序将使用剩余的带宽下载更新。这听起来简单,但却是一个技术难题,幸运的是已经有了解决方法。

第三个考虑因素是使用新版应用程序更换原应用程序的过程。这个问题比较有趣,因为它要求代码运行时将自己从系统删除,有多种办法可以实现该功能[5],本文程序主要通过比较新旧版本的日期号来实现替换新版本应用程序的功能。

3 实现软件自动在线升级的原理

写两个程序,一个是主程序;一个是升级程序;所有升级任务都由升级程序完成。

1.启动升级程序,升级程序连接到网站,下载新的主程序(当然还包括支持的库文件、XML配置文档等)到临时文件夹;

2.升级程序获取服务器端XML配置文件中新版本程序的更新日期或版本号或文件大小;

3.升级程序获取原有客户端应用程序的最近一次更新日期或版本号或文件大小,两者进行比较;如果发现升级程序的日期大于原有程序的最新日期,则提示用户是否升级;或者是采用将现有版本与最新版本作比较,发现最新的则提示用户是否升级;也有人用其它属性如文件大小进行比较,发现升级程序的文件大小大于旧版本的程序的大小则提示用户升级。本文主要采用比较新旧版本更新日期号来提示用户升级。

4.如果用户选择升级,则获取下载文件列表,开始进行批量下载文档;

5.升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序;

6.删除旧的主程序,拷贝临时文件夹中的文件到相应的位置;

7.检查主程序的状态,若状态为活动的,则启动新的主程序;

8.关闭升级程序,升级完成[4]。

4 用C#实现在线升级的关键步骤 
这里我主要使用日期信息来检测是否需要下载升级版本。 
4.1 准备一个XML配置文件 
名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。

名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。 

<?xml version="1.0"?> //xml版本号 
<AutoUpdater> 
<URLAddres URL="http://192.168.198.113/vbroker/log/"/>//升级文件所在服务器端的网址 
<UpdateInfo> 
<UpdateTime Date = "2005-02-02"/> //升级文件的更新日期 
<Version Num = "1.0.0.1"/> //升级文件的版本号 
</UpdateInfo> 
<UpdateFileList> //升级文件列表 
<UpdateFile FileName = "aa.txt"/> //共有三个文件需升级 
<UpdateFile FileName = "VB40.rar"/> 
<UpdateFile FileName = "VB4-1.CAB"/> 
</UpdateFileList> 
<RestartApp> 
<ReStart Allow = "Yes"/> //允许重新启动应用程序 
<AppName Name = "TIMS.exe"/> //启动的应用程序名 
</RestartApp> 
</AutoUpdater> 

//xml版本号 

//升级文件所在服务器端的网址 

//升级文件的更新日期 
//升级文件的版本号 

//升级文件列表 
//共有三个文件需升级 

//允许重新启动应用程序 
//启动的应用程序名 

从以上XML文档中可以得知升级文档所在服务器端的地址、升级文档的更新日期、需要升级的文件列表,其中共有三个文件需升级:aa.txt、VB40.rar、VB4-1.CAB。以及是否允许重新启动应用程序和重新启动的应用程序名。

4.2 获取客户端应用程序及服务器端升级程序的最近一次更新日期 
通过GetTheLastUpdateTime()函数来实现。

private string GetTheLastUpdateTime(string Dir) 
{ 
string LastUpdateTime = ""; 
string AutoUpdaterFileName = Dir + @"\AutoUpdater.xml"; 
if(!File.Exists(AutoUpdaterFileName)) 
return LastUpdateTime; 
//打开xml文件 
FileStream myFile = new FileStream(AutoUpdaterFileName,FileMode.Open); 
//xml文件阅读器 
XmlTextReader xml = new XmlTextReader(myFile); 
while(xml.Read()) 
{ 
if(xml.Name == "UpdateTime") 
{ 
//获取升级文档的最后一次更新日期 
LastUpdateTime = xml.GetAttribute("Date"); 
break; 
} 
} 
xml.Close(); 
myFile.Close(); 
return LastUpdateTime; 
} 

通过XmlTextReader打开XML文档,读取更新时间从而获取Date对应的值,即服务器端升级文件的最近一次更新时间。 

函数调用实现: 
//获取客户端指定路径下的应用程序最近一次更新时间 
string thePreUpdateDate = GetTheLastUpdateTime(Application.StartupPath); 
Application.StartupPath指客户端应用程序所在的路径。 

//获得从服务器端已下载文档的最近一次更新日期 
string theLastsUpdateDate = GetTheLastUpdateTime(theFolder.FullName); 
theFolder.FullName指在升级文档下载到客户机上的临时文件夹所在的路径。 

4.3 比较日期 
客户端应用程序最近一次更新日期与服务器端升级程序的最近一次更新日期进行比较。

//获得已下载文档的最近一次更新日期 
string theLastsUpdateDate = GetTheLastUpdateTime(theFolder.FullName); 
if(thePreUpdateDate != "") 
{ 
//如果客户端将升级的应用程序的更新日期大于服务器端升级的应用程序的更新日期 
if(Convert.ToDateTime(thePreUpdateDate)>=Convert.ToDateTime(theLastsUpdateDate)) 
{ 
MessageBox.Show("当前软件已经是最新的,无需更新!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information); 
this.Close(); 
} 
} 
this.labDownFile.Text = "下载更新文件"; 
this.labFileName.Refresh(); 
this.btnCancel.Enabled = true; 
this.progressBar.Position = 0; 
this.progressBarTotal.Position = 0; 
this.progressBarTotal.Refresh(); 
this.progressBar.Refresh(); 

//通过动态数组获取下载文件的列表 
ArrayList List = GetDownFileList(GetTheUpdateURL(),theFolder.FullName); 
string[] urls = new string[List.Count]; 
List.CopyTo(urls, 0); 

将客户端升级的应用程序的日期与服务器端下载的应用程序日期进行比较,如果前者大于后者,则不更新;如果前者小于后者,则通过动态数组获取下载文件的列表,开始下载文件。

4.2 获取客户端应用程序及服务器端升级程序的最近一次更新日期 
通过GetTheLastUpdateTime()函数来实现。

private string GetTheLastUpdateTime(string Dir) 
{ 
string LastUpdateTime = ""; 
string AutoUpdaterFileName = Dir + @"\AutoUpdater.xml"; 
if(!File.Exists(AutoUpdaterFileName)) 
return LastUpdateTime; 
//打开xml文件 
FileStream myFile = new FileStream(AutoUpdaterFileName,FileMode.Open); 
//xml文件阅读器 
XmlTextReader xml = new XmlTextReader(myFile); 
while(xml.Read()) 
{ 
if(xml.Name == "UpdateTime") 
{ 
//获取升级文档的最后一次更新日期 
LastUpdateTime = xml.GetAttribute("Date"); 
break; 
} 
} 
xml.Close(); 
myFile.Close(); 
return LastUpdateTime; 
} 

通过XmlTextReader打开XML文档,读取更新时间从而获取Date对应的值,即服务器端升级文件的最近一次更新时间。 

函数调用实现: 
//获取客户端指定路径下的应用程序最近一次更新时间 
string thePreUpdateDate = GetTheLastUpdateTime(Application.StartupPath); 
Application.StartupPath指客户端应用程序所在的路径。 

//获得从服务器端已下载文档的最近一次更新日期 
string theLastsUpdateDate = GetTheLastUpdateTime(theFolder.FullName); 
theFolder.FullName指在升级文档下载到客户机上的临时文件夹所在的路径。 

4.3 比较日期 
客户端应用程序最近一次更新日期与服务器端升级程序的最近一次更新日期进行比较。

//获得已下载文档的最近一次更新日期 
string theLastsUpdateDate = GetTheLastUpdateTime(theFolder.FullName); 
if(thePreUpdateDate != "") 
{ 
//如果客户端将升级的应用程序的更新日期大于服务器端升级的应用程序的更新日期 
if(Convert.ToDateTime(thePreUpdateDate)>=Convert.ToDateTime(theLastsUpdateDate)) 
{ 
MessageBox.Show("当前软件已经是最新的,无需更新!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information); 
this.Close(); 
} 
} 
this.labDownFile.Text = "下载更新文件"; 
this.labFileName.Refresh(); 
this.btnCancel.Enabled = true; 
this.progressBar.Position = 0; 
this.progressBarTotal.Position = 0; 
this.progressBarTotal.Refresh(); 
this.progressBar.Refresh(); 

//通过动态数组获取下载文件的列表 
ArrayList List = GetDownFileList(GetTheUpdateURL(),theFolder.FullName); 
string[] urls = new string[List.Count]; 
List.CopyTo(urls, 0); 

将客户端升级的应用程序的日期与服务器端下载的应用程序日期进行比较,如果前者大于后者,则不更新;如果前者小于后者,则通过动态数组获取下载文件的列表,开始下载文件。

通过BatchDownload()函数来实现。升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序;删除旧的主程序,拷贝临时文件夹中的文件到相应的位置;检查主程序的状态,若状态为活动的,则启动新的主程序。

private void BatchDownload(object data) 
{ 
this.Invoke(this.activeStateChanger, new object[]{true, false}); 
try 
{ 
DownloadInstructions instructions = (DownloadInstructions) data; 
//批量下载 
using(BatchDownloader bDL = new BatchDownloader()) 
{ 
bDL.CurrentProgressChanged += new DownloadProgressHandler(this.SingleProgressChanged);
bDL.StateChanged += new DownloadProgressHandler(this.StateChanged); 
bDL.FileChanged += new DownloadProgressHandler(bDL_FileChanged); 
bDL.TotalProgressChanged += new DownloadProgressHandler(bDL_TotalProgressChanged); 
bDL.Download(instructions.URLs, instructions.Destination, (ManualResetEvent) this.cancelEvent); 
} 
} 
catch(Exception ex) 
{ 
ShowErrorMessage(ex); 
} 
this.Invoke(this.activeStateChanger, new object[]{false, false}); 
this.labFileName.Text = ""; 
//更新程序 
if(this._Update) 
{ 
//关闭原有的应用程序 
this.labDownFile.Text = "正在关闭程序...."; 
System.Diagnostics.Process[]proc=System.Diagnostics.Process.GetProcessesByName("TIMS"); 
//关闭原有应用程序的所有进程 
foreach(System.Diagnostics.Process pro in proc) 
{ 
pro.Kill(); 
} 
DirectoryInfo theFolder=new DirectoryInfo(Path.GetTempPath()+”JurassicUpdate"); 
if(theFolder.Exists) 
{ 
foreach(FileInfo theFile in theFolder.GetFiles()) 
{ 
//如果临时文件夹下存在与应用程序所在目录下的文件同名的文件,则删除应用程序目录下的文件
if(File.Exists(Application.StartupPath + \\"+Path.GetFileName(theFile.FullName))) 
File.Delete(Application.StartupPath + "\\"+Path.GetFileName(theFile.FullName)); 
//将临时文件夹的文件移到应用程序所在的目录下 
File.Move(theFile.FullName,Application.StartupPath + \\"+Path.GetFileName(theFile.FullName)); 
} 
} 
//启动安装程序 
this.labDownFile.Text = "正在启动程序...."; 
System.Diagnostics.Process.Start(Application.StartupPath + "\\" + "TIMS.exe"); 
this.Close(); 
} 
}

7. 只有安卓客户端软件如何编写电脑版的软件

那就只能完全重写了,不过安卓的软件本身就可以在电脑上用BlueStacks之类来运行的,至于服务器什么你可以通过在电脑上抓包得到。

只有安卓客户端软件如何编写电脑版的软件

8. 如何设置客户端软件?

登陆地址:http://iqqy.gdbnet.cn/login.jsp;客户域:200102;连接方式:NET连接;登录帐号:ylt@ys.zh.gd;密码:123456。谢谢您对电信产品的关注,祝您生活愉快。 如果以上信息没有解决您的问题,也可登录广东电信手机商城(http://m.gd.189.cn),向在线客服求助,7X24小时在线喔!