一个机器A(服务端)实时监控机器B(客户端)目录下的文件,新增加则拷贝的功能,大家给点意见!

问题描述

客户端代码:importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.net.InetAddress;importjava.net.Socket;importjava.net.UnknownHostException;publicclassClient1{privateSocketsocket;privatePrintWriterout;finalintport=8110;Stringpath="/home/ocs/cfg/batchTransfer";privateInetAddressaddr;publicClient1(InetAddressaddr){this.addr=addr;}publicvoidrun(){while(true){try{Stringpath="/home/ocs/cfg/batchTransfer";Filef=newFile(path);File[]flist=f.listFiles();System.out.println("flist.length="+flist.length);StringfileName=null;for(inti=0;i<flist.length;i++){fileName=flist[i].getName();//System.out.println(fileName);Stringstr=null;System.out.println("");Filefile=newFile("/home/ocs/cfg/client/bakFile.txt");if(!file.exists())file.createNewFile();System.out.println("notprocess="+BatchTransferLogic.notProcessedFile(fileName));if(BatchTransferLogic.notProcessedFile(fileName)){System.out.println("notProcessfileName="+fileName);socket=newSocket(addr,port);BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream(path+"/"+fileName)));System.out.println("br="+br);PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),true);System.out.println("out="+out);StringBuffersb=newStringBuffer();intsize=0;char[]buf=newchar[1024];while((size=br.read(buf,0,1024))!=-1){System.out.println("size="+size);out.write(buf,0,size);out.flush();}BatchTransferLogic.readFile(path+"/"+fileName);if(br!=null)br.close();if(out!=null)out.close();if(socket!=null)socket.close();}}}catch(Exceptione){System.out.println("inexcepiton");}try{Thread.sleep(1000);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}publicstaticvoidmain(String[]args)throwsUnknownHostException,InterruptedException{InetAddressaddr=InetAddress.getByName("10.7.127.100");Client1cl=newClient1(addr);cl.run();}}--------------------------------------------------------------------//查看文件是否被拷贝importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.PrintWriter;publicclassBatchTransferLogic{publicstaticvoidreadFile(StringfileName)throwsIOException{Filef=newFile(fileName);StringrealName=fileName.substring(fileName.lastIndexOf("/")+1);System.out.println("realName="+realName);Filefile=newFile("/home/ocs/cfg/client/bakFile.txt");if(!file.exists())file.createNewFile();OutputStreamos=newFileOutputStream("/home/ocs/cfg/client/bakFile.txt",true);BufferedWriterbw=newBufferedWriter(newPrintWriter(os));byte[]buf=newbyte[8192];StringBuffersb=newStringBuffer();intsize=0;sb.append(realName);sb.append("n");bw.write(sb.toString());bw.flush();if(bw!=null)bw.close();}publicstaticbooleannotProcessedFile(Stringname)throwsIOException{Filefile=newFile("/home/ocs/cfg/client/bakFile.txt");if(!file.exists())file.createNewFile();BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream("/home/ocs/cfg/client/bakFile.txt")));Stringstr=null;while((str=br.readLine())!=null){if(name.equals(str))returnfalse;}returntrue;}publicstaticvoidmain(String[]args)throwsIOException{Filef=newFile("/home/ocs/cfg/client");File[]flist=f.listFiles();for(inti=0;i<flist.length;i++){if(notProcessedFile(flist[i].getName())){readFile("/home/ocs/cfg/client"+flist[i].getName());}}}}//--------------------------------------------------------------------//服务端代码:packagecom.test.logic;importjava.io.BufferedInputStream;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.ServerSocket;importjava.net.Socket;publicclassSer1{publicSer1(Sockets,Stringc)throwsIOException{}publicvoidrun(){}publicstaticvoidmain(String[]args)throwsIOException{ServerSocketserver=newServerSocket(8110);Sockets=null;while(true){try{s=server.accept();InputStreamis=s.getInputStream();BufferedReaderbr=newBufferedReader(newInputStreamReader(is));System.out.println("flag="+is.available());intc=0;Stringpath="E:\bak5";StringfileName=path+"\"+"temp"+System.currentTimeMillis()+".txt";FileOutputStreamfos=null;PrintWriterout=null;intlen=-1;char[]buf=newchar[1024];Stringstr=null;while((len=br.read(buf,0,1024))!=-1){if(!newFile(fileName).exists()){fos=newFileOutputStream(newFile(fileName));out=newPrintWriter(fos);}out.write(buf,0,len);out.flush();}if(out!=null)out.close();}catch(IOExceptione){}}}}

时间: 2024-12-06 05:20:46

一个机器A(服务端)实时监控机器B(客户端)目录下的文件,新增加则拷贝的功能,大家给点意见!的相关文章

框架-C# network comms的服务端程序一定放置在服务器环境下吗 比如做一个即时通讯系统

问题描述 C# network comms的服务端程序一定放置在服务器环境下吗 比如做一个即时通讯系统 有的人做的即时通讯软件客户端和服务端都是在windows系统下直接运行 就是exe文件 如果用这个框架做是不是还得部署到服务器环境下 初次接触网络通信编程 以前也写过用网络通讯程序 ,只是简单的手机控制电脑关机 用不到框架 现在用感觉一头雾水网上都没入门教程直接就是小案例下载下来也无法运行 解决方案 没必要,客户端操作系统就可以.但是服务器操作系统更适合生产环境,它的配置是面向服务器环境的(比

https双向认证,如何在服务端获取当前请求的客户端证书id

问题描述 RT,在https双向认证的环境下,服务端配置了客户端证书的可信任证书列表,每个客户,一个独立的客户端证书.那么当一个请求到达服务端后,在服务端的代码中,如何来获取当前请求的客户端证书是哪一个?高人可以结合某个特定的容器配置来说明,万分感谢 解决方案 X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");双向认证之后

PC_android使用socket通信,要求PC服务端发送图片给手机客户端,并在手机显示

问题描述 PC_android使用socket通信,要求PC服务端发送图片给手机客户端,并在手机显示 本人根据"http://sishuok.com/forum/posts/list/1995.html"此网址,做了一个socket通信的例子,但是通信成功了,图片在手机中显示不出来,求解答 解决方案 http://www.cnblogs.com/tt_mc/archive/2010/06/04/1751260.html 解决方案二: http://blog.csdn.net/tobac

android 扫描二维码后客户端无自动跳转反应且服务端并没有收到来自客户端的请求

问题描述 android 扫描二维码后客户端无自动跳转反应且服务端并没有收到来自客户端的请求 我的代码是这样写的,我希望就是利用Scanner扫描后联网判断账户与密码的正确性,现在的情况是能够get到二维码的内容,但就是没有执行联网查询的操作,是不是不应该在OnActivityResult中去这样写呢'? 希望前辈帮忙指点指点思路.谢谢 下面是service的内容: 解决方案 问题不再这里.你service里面是怎么写的啊?在AndroidManifest.xml里面有没有注册上啊? 解决方案二

请问,Java用何种技术架构编写服务端,能让VB客户端访问?

问题描述 各位大哥大姐,小弟菜鸟一只,只会点JAVA和VB.今日心血来潮,想向各位请教个问题.Java用何种技术架构编写服务端,能让VB客户端高效安全的访问?Webservice,COM+,CORBA?这些名词都听说过,可惜小弟才疏学浅,闻其名,却不知其意.请各位指教.非常谢谢. 解决方案 本帖最后由 skill_job 于 2011-07-16 01:22:45 编辑

AWS邮件通知服务:实时监控邮件状态

以下为译文:   订阅"AWS中文技术社区"微信公众号,实时掌握AWS技术及产品消息! AWS中文技术社区为广大开发者提供了一个Amazon Web Service技术交流平台,推送AWS最新资讯.技术视频.技术文档.精彩技术博文等相关精彩内容,更有AWS社区专家与您直接沟通交流!快加入AWS中文技术社区,更快更好的了解AWS云计算技术.   如果用户想要发送事务性的电子邮件.推广讯息以及其他类似讯息,亚马逊简单邮件服务(SES)是一个非常好的选择.SES是一个简单.扩展性好且非常划算

[求救] JBuilder9.0环境下 编辑一个程序 实现 输出我的电脑上建立的FTP服务器目录下所有文件名

问题描述 就是先在本地开启了FTP服务在C:inetpubftproot文件夹里随便建立了几个文件,假设文件名是1,2,3,4现在用JAVA在JBuilder9下写一个程序输出结果是我的电脑上的这个FTP站点下的这个文件夹下所有文件的文件名,也就是输出:1,2,3,4我是小白,这对我来说很难,请高手大大指点,最好给个代码让我学习一下,谢谢了,很急的说. 解决方案 解决方案二:没有大虾在吗?

linux find下如何统计一个目录下的文件个数以及代码总行数的命令_unix linux

今天遇到如题所示问题,网上捣鼓半天,有收获     知道指定后缀名的文件总个数命令:        find . -name "*.html" | wc -l     知道一个目录下代码总行数以及单个文件行数:        find . -name "*.html" | xargs wc -l

asp.net客户端同步服务端实时刷新时间

 //首先加入下列脚本<script>...        //获取时间    function Timer(span)        ...{                            var tmp = new Date();            var milsecs=Date.parse(tmp.getMonth()+"-"+tmp.getDay()+"-"+tmp.getFullYear()+" "+docum