导航:首页 > 文件教程 > java文件级消息同步

java文件级消息同步

发布时间:2023-05-10 22:41:23

A. 200分求java 用socket进行文件的同步

客户端,.java:

public class Client {
public static void main(String[] args) throws IOException {
Socket socket = null;
String host = "127.0.0.1";

socket = new Socket(host, 4444);

File file = new File("M:\\test.xml");
// Get the size of the file
long length = file.length();
byte[] bytes = new byte[16 * 1024];
InputStream in = new FileInputStream(file);
OutputStream out = socket.getOutputStream();

int count;
while ((count = in.read(bytes)) > 0) {
out.write(bytes, 0, count);
}

out.close();
in.close();
socket.close();
}
}

服务端,Server.java:
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;

try {
serverSocket = new ServerSocket(4444);
} catch (IOException ex) {
System.out.println("Can't setup server on this port number. ");
}

Socket socket = null;
InputStream in = null;
OutputStream out = null;

try {
socket = serverSocket.accept();
} catch (IOException ex) {
System.out.println("Can't accept client connection. ");
}

try {
in = socket.getInputStream();
} catch (IOException ex) {
System.out.println("Can't get socket input stream. ");
}

try {
out = new FileOutputStream("M:\\test2.xml");
} catch (FileNotFoundException ex) {
System.out.println("File not found. ");
}

byte[] bytes = new byte[16*1024];

int count;
while ((count = in.read(bytes)) > 0) {
out.write(bytes, 0, count);
}

out.close();
in.close();
socket.close();
serverSocket.close();
}
}

B. java如何实现两台计算机之间文件夹同步更新

实现两台电脑同步文件夹的方法:
1、在登录完成之后,客户端会自动弹出配置向导。

2、选择目标文件夹之后,客户端会自动在该文件夹下面生成名为“”的同步文件夹。
即可实现成功。

C. java中实现同步的方法有哪两种

Java的同步可以用synchronized关键字来实现。

sychronized可以同步代码,需要绑定一个对象,如synchronized(obj){}
也可以同步一个方法,是对方法进行线程同步。如public void synchronized methodA(){}

D. java多线程解决同步问题的几种方式,原理和代码

在Java中一共有四种方法支持同步,其中前三个是同步方法,一个是管道方法。管道方法不建议使用。

E. java怎么同步发送及异步发送短信例子解析

  1. 发送短信的接口
    根据自己的情况选择服务商。

  2. 开发文档
    从开发文档中我们可以看到. 可以直接使用http请求也可以使用WebService请求发送短信. 由于DEMO文件夹下的java和jsp文件夹中的代码都是使用http请求发送短信. 所以这里就不再细说了, 我们使用WebService的方式演示发送短信.

  3. 生成客户端代码

    从接口文档中我们知道它的WebService的WSDL的url为:http://106.ihuyi.cn/webservice/sms.php?WSDL那么我们可以执行下面的命令生成客户端代码:

    wsimport -keep http://106.ihuyi.cn/webservice/sms.php?WSDL

    其中wsimport是JDK自带的工具, -keep url选项是"保留生成的文件". 该命令会在当前目录下生成sms.cn.ihuyi._106包, 以及众多的类. 接下来开始编写我们自己的代码.

  4. 定义接口

    为了方便, 这里我们首先定义一个接口:

    Sms.java
    publicinterfaceSms{
    /**
    *向mobile发送短信,内容为message
    *
    *@parammobile手机号
    *@parammessage短信内容
    *@return成功返回-1,否则返回其他值
    */
    intsendMessage(Stringmobile,Stringmessage);
    }

    这个接口很简单, 只有一个方法. 这个方法用来发送短信.

  5. 同步发送短信

    接下来我们首先实现一个同步发送短信的类:


    IhuyiSmsImpl.java
    {

    privateStringaccount;
    privateStringpassword;

    publicvoidsetAccount(Stringaccount){
    this.account=account;
    }

    publicvoidsetPassword(Stringpassword){
    this.password=password;
    }

    @Override
    publicintsendMessage(Stringmobile,Stringmessage){
    cn.ihuyi._106.Smsfactory=newcn.ihuyi._106.Sms();
    SmsSoapsmsSoap=factory.getSmsSoap();
    SubmitResultsubmit=smsSoap.submit(account,password,mobile,message);
    intcode=submit.getCode();
    if(code==2){
    return-1;
    }
    System.out.println("发送短信失败,code:"+code);
    returncode;
    }
    }
  6. 异步发送短信

    由于发送短信涉及到网络通信, 因此sendMessage方法可能会有一些延迟. 为了改善用户体验, 我们可以使用异步发送短信的方法. 原理很简单: 如果用户请求发送短信, 我们不是直接调用IhuyiSmsImpl的sendMessage方法, 而是将请求保存起来(生产者), 然后告诉用户: 短信发送成功. 之后有若干个消费者取出任务, 调用sendMessage方法发送短信.

    这里, 我使用线程池完成上面的任务:

    AsyncSmsImpl.java
    {
    publicSmssendSms;
    =Executors.newFixedThreadPool(3);

    publicvoidsetSendSms(SmssendSms){
    this.sendSms=sendSms;
    }

    @Override
    publicintsendMessage(Stringmobile,Stringmessage){
    try{
    executorService.submit(()->sendSms.sendMessage(mobile,message));
    }
    catch(Exceptione){
    Sysemt.out.println("提交任务时发生错误"+e);
    return0;
    }
    return-1;
    }

    publicvoiddestroy(){
    try{
    executorService.shutdown();
    }
    catch(Exceptione){}
    }
    }

    在第17行, 我们获得远程对象的一个代理对象. 之后就可以通过这个代理对象进行发送短信, 查询账户余额等操作.

    第18行, 使用该代理对象的submit方法提交了短信内容. 该方法的参数信息及返回值含义在接口文档中有详细的说明.

    第19行我们获得了结果的状态码. 根据文档上的说明, 状态码为2说明提交成功. 简单起见, 这里我们只关注提交成功的情况. 需要注意的是, 状态码为2只是说明提交成功. 根据官网上的"3-5秒内响应、100%到达", 我们可以推测. 如果提交成功, 那么基本上3-5秒内,短信就会发送成功, 根据用户的网络情况, 可能稍有延迟用户就可以收到短信.

    使用这段代码发送短信也很简单, 直接new一个对象, 设置好账号和密码就可以发送短信了.

  7. 代码很简单, 直接将Sms接口的sendMessage(mobile, message)方法作为一个任务加到线程池的任务队列中. 这样等到有空闲线程时, 就会执行sendSms.sendMessage(mobile, message)发送短信. 这里我们假设只要保存到线程池就可以成功发送短信. 因为发送失败的情况实际上很罕见.

F. java中实现同步的方法到底有哪两种

应该是同步方法和同步闷衫代码块。synchronized,wait与notify 这几个是实现同步的进一步细节升扮操作,如果不是为了实现什么多线程明细,就蚂笑腔简单的同步方法和同步代码块即可解决同步问题。

G. 在java中如何实现同步和异步

同步和异步一般是指多线程中对资源的大碧访问的。最简单的例子是在多袭芦线程中对一个静态整数进行递增拍仿带操作,然后在线程run方法上加synchronizied关键字试试。

H. java中什么同步什么是异步分别用在什么地方

java同步指的是synchronized机制,而非synchronized的都是异步,弄懂同步的概念就大致明白了两者的差别。

有关同步:
synchronized用来修饰一个方法或者一个代码块,它用来保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。
四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
五、以上规则对其它对象锁同样适用。

示例代码:
public class Thread1 implements Runnable {
public void run() {
synchronized(this) {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + " synchronized loop " + i);
}
}
}
public static void main(String[] args) {
Thread1 t1 = new Thread1();
Thread ta = new Thread(t1, "A");
Thread tb = new Thread(t1, "B");
ta.start();
tb.start();
}
}
结果:
A synchronized loop 0
A synchronized loop 1
A synchronized loop 2
A synchronized loop 3
A synchronized loop 4
B synchronized loop 0
B synchronized loop 1
B synchronized loop 2
B synchronized loop 3
B synchronized loop 4

I. java 数据同步要怎么实现才好

首先得弄清楚 你的插入是对同一数据库 还是不同数据库的操作数据量大的时候 是否要求即时性 是否牵扯到事物
本人推荐 做一个跑批程序 进行同步数据 这样能提高代码性能 以及程序性能 当然 你所说的瓶颈 无非就是大数据量对数据库的操作次数 以及海量数据造成程序效率的一个瓶颈 谢谢!

J. java如何实现服务器之间的文件同步

给大家讲讲我的学习经历吧,开始的两年我学JAVA就是拿书看,练习书上的例子,但是一直没有好的效果。后来因为项目需要开始正式使用JAVA开发,我发现以前练习的东西都忘光了,所以不得不在拿起书看。也就是基本上做了无用功了。现在想来因为大部分是抄来的,不怎么动脑子,所以不清楚为什么要这样。所以我强烈建议你学习的时候给自己设定一个假想的项目目标,做一个东西出来,网页也好,application也好,这样你才会快速地学习。对java有了一定地感觉以后,你在去看他的DOCUMENT,看他的源码,我建议你从低版本的JAVA源码看起,因为他类少,看起来容易懂。然后你就会知道自己以前编码的东西那些是很幼稚的,是可以用一两句就能搞定的。如果你已经稍微有了些感觉,如果觉得合适也可以考虑参加一些培训,毕竟比自学要轻松些,另外还可以学到别人的一些经验,比如:“动力节点”或“王勇Java”一些学员反应不错的,也建议你们多了解一下其它的培训机构。Y.

阅读全文

与java文件级消息同步相关的资料

热点内容
不用网络加载的单机游戏有哪些 浏览:608
数据线插头怎么接头 浏览:577
网络加载视频失败是怎么回事 浏览:805
传奇账号在哪个文件夹里 浏览:346
百度app在哪里安装 浏览:587
如何设置路由器网络不断网 浏览:471
传到qq群里的文件怎么删除 浏览:861
索尼安卓71更新日志 浏览:234
怎么找手机里的垃圾app 浏览:540
2015蓝桥杯代码填空 浏览:698
安卓数据库dbexecSQL 浏览:227
doc重命名文件格式 浏览:728
getscreen截图工具下载 浏览:719
共识数据是什么时候开始的 浏览:96
数码管显示电压程序 浏览:479
数据库文件有哪个 浏览:543
途强储存在哪个文件夹 浏览:172
如何恢复被覆盖文件 浏览:611
iphone5用哪个版本最好 浏览:327
extjsgrid禁用 浏览:426

友情链接