「java设备通信」java系统间通信

博主:adminadmin 2023-01-16 10:00:13 324

今天给各位分享java设备通信的知识,其中也会对java系统间通信进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何使用Java实现两台PC机之间的串口通信

//SocketClient

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.Socket;

import java.util.Scanner;

import org.apache.log4j.Logger;

import com.sitinspring.server.ResponseThread;

/**

* Socket客户端

* @author: sitinspring(junglesong@gmail.com)

* @date: 2007-11-16

*/

public class SocketClient{

private static Logger logger = Logger.getLogger(ResponseThread.class);

public static void main(String[] args){

try {

Socket socket=new Socket("127.0.0.1",2009);

logger.info("客户端向服务器发起请求.");

try {

InputStream inStream = socket.getInputStream();

OutputStream outStream = socket.getOutputStream();

Scanner in = new Scanner(inStream);

PrintWriter out = new PrintWriter(outStream);

out.println("地震高岗 一派溪山千古秀");

out.flush();

while (in.hasNextLine()) {

String line = in.nextLine();

logger.info("客户端获得响应文字="+ line);

}

} finally {

socket.close();

}

} catch (IOException ex) {

ex.printStackTrace();

}

}

}

//Member

import java.util.Comparator;

public class Member implements Comparable {

private String name;

private int age;

public Member(String name, int age) {

this.name = name;

this.age = age;

}

public int compareTo(Object obj) {

Member another = (Member) obj;

//return this.name.compareTo(another.name);

return this.age-another.age;

}

public String toString(){

return "Member name="+name+" age="+age;

}

}

//Main

import java.util.Arrays;

import java.util.List;

public class Main{

public static void main(String[] args){

String[] arr={"Andy","Bill","Cindy","Dell"};

ListString ls=Arrays.asList(arr);

for(String str:ls){

System.out.println(str);

}

/*ListString ls=new ArrayListString();

ls.add("Felex");

ls.add("Gates");

ls.add("Andy");

ls.add("Bill");

ls.add("Cindy");

ls.add("Dell");

Object[] arr=ls.toArray();

for(Object obj:arr){

System.out.println((Object)obj);

}*/

/*Collections.sort(ls);

for(Member member:ls){

System.out.println(member);

}*/

/*Member member=new Member("Edin",28);

ls.remove(member);

ls.remove(2);

ls.clear();

List ls2=new ArrayList();*/

/*for(Member member:ls){

// member

}*/

/*for(int i=0;ils.size();i++){

Member member=ls.get(i);

}*/

/*for(Iterator it=ls.iterator();it.hasNext();){

Member member=(Member)it.next();

}

ListMember ls2=new ArrayListMember();

ls2.add(new Member("Felex",21));

ls2.add(new Member("Gates",23));

ls.addAll(ls2);

ls2.*/

/*List ls3=null;

System.out.println(ls3.isEmpty());*/

/*List ls3=null;

System.out.println(ls2.isEmpty());*/

/*ls.

ls.indexOf(o)

ls.contains(o)*/

//ls2.add(1);

}

}

//ResponseThread 这个是server的先启动client(服务器)再启动它。上面三个类是client放在一个文件夹中

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.Scanner;

import org.apache.log4j.Logger;

/**

* 响应线程,建立ServerSocket响应客户端Socket请求

* @author: sitinspring(junglesong@gmail.com)

* @date: 2007-11-16

*/

public class ResponseThread implements Runnable {

private static Logger logger = Logger.getLogger(ResponseThread.class);

// 用于与客户端通信的Socket

private Socket incomingSocket;

public ResponseThread(Socket incomingSocket) {

this.incomingSocket = incomingSocket;

}

public void run() {

try {

try {

// 输入流

InputStream inStream = incomingSocket.getInputStream();

// 输出流

OutputStream outStream = incomingSocket.getOutputStream();

Scanner in = new Scanner(inStream);

PrintWriter out = new PrintWriter(outStream,true);

while (in.hasNextLine()) {

String line = in.nextLine();

logger.info("从客户端获得文字:"+line);

String responseLine=line+" 门朝大海 三河合水万年流";

out.println(responseLine);

logger.info("向客户端送出文字:"+responseLine);

}

} finally {

incomingSocket.close();

}

} catch (IOException ex) {

ex.printStackTrace();

}

}

public static void main(String[] args) {

try {

ServerSocket socket=new ServerSocket(2009);

logger.info("开始监听");

while(true){

Socket incomingSocket=socket.accept();

logger.info("获得来自"+incomingSocket.getInetAddress()+"的请求.");

ResponseThread responseThread=new ResponseThread(incomingSocket);

Thread thread=new Thread(responseThread);

thread.start();

}

} catch (IOException ex) {

ex.printStackTrace();

}

}

}

Java 服务端和客户端的通信

有两种方法:

客户端和服务端创建两个连接,一个连接用于发消息,一个连接用于发文件。

客户端和服务端使用同一个连接,数据不要直接发出去,按照一定的格式制订一个协议,数据一块一块的发,每块前面加上块类型和长度,类型表明发送的是消息数据还是文件数据。

java两台机器之间通信

可以用RMI。Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。当然还有其他很多方法,如webservice,hessian等。

用java如何实现终端机和服务器通讯

通讯简单的http请求就可以呀

要是说获取重量 类型那些东西,就需要对应传感器了,是硬件工程师做的,你和他们订好传输协议,按协议接收就好了。

java socket 一对多通信,怎么给指定的设备发送信息

一个客户端socket对象连接成功时,你保持这个连接状态不关闭,只要用这个对象发送的就只会到那个客户端。

如果是短连接的话,你就需要用客户端的标识来保存好这个message,等下次客户端再连接的时候,用标识找到message,然后发送给它。

java采用UDP协议与设备通信有什么好用点的框架

我是用的自己写的一个简单框架,对发送通道做池管理,侦听端口则配置多个端口提高并发量。

做的是工业级的项目,而udp又是老丢包,所以还自己加了一个自动重发机制(设备端接收到数据后会立即给一个接收成功的响应包)。

另外我是做java B/S系统的,所以习惯了 请求-响应 的模式,那么就会有向发设备发送请求,然后等待设备响应结果的处理模式,我用了Object的wait方法来等待响应后的结果,再将线程唤醒。

另外还有一些心跳包、握手包等,感觉做得有点乱,有些地方也搞得比较繁琐(比如:包要加密、包要带上流水号,请设备发送的请求包,还要保留流水号等到设备响应相应的结果)。

说得比较乱,不知道有没有比较成熟的框架,希望

java设备通信的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java系统间通信、java设备通信的信息别忘了在本站进行查找喔。