「java设备通信」java系统间通信
今天给各位分享java设备通信的知识,其中也会对java系统间通信进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、如何使用Java实现两台PC机之间的串口通信
- 2、Java 服务端和客户端的通信
- 3、java两台机器之间通信
- 4、用java如何实现终端机和服务器通讯
- 5、java socket 一对多通信,怎么给指定的设备发送信息
- 6、java采用UDP协议与设备通信有什么好用点的框架
如何使用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设备通信的信息别忘了在本站进行查找喔。