今天给各位分享java与c网络通信的知识,其中也会对c语言和java的联系进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、请教一下用JAVA和用C实现socket网络通信哪个效率更高?高分求,在线等。2、Java如何与C进行通信3、java程序和C程序如何相互通信?4、java操作数据库偶尔出现网络通信异常的原因5、谁有java和C用socket通信的简单例子
请教一下用JAVA和用C实现socket网络通信哪个效率更高?高分求,在线等。
肯定是c的效率高,但是假如不是在特别苛刻的要求socket效率的地方区别并不明显,也就是说在大部分应用情况下并没有特别大的差异。java反而更容易些。
Java如何与C进行通信
两个不同进程之间的数据交互:
1、可以选择socket通信
2、可以选择文件,不过要注意好读写
3、消息传递,在windows下抛出一个消息//具体怎么做我没试过,只知道有这方法
4、数据库//这个比较容易实现
上面说的两个不同进程,当然就是可以选择用不同语言写出来的程序了
java程序和C程序如何相互通信?
换下思路,C去调用数据库,然后保存到数据库阿java调用数据库得到C处理完存入数据库的数据就可以了.
结构如图这样就少想不同语言间的交流,而且java和C的交互不是很好,貌似java貌似可以支持DLL,但是不方便
java操作数据库偶尔出现网络通信异常的原因
网络通信时连接中断。根据查询相关公开信息显示,出现网络通信时连接中断情况,导致java操作数据库偶尔出现网络通信异常,可以重新连接网络后重试。Java是一门面向对象的编程语言,不仅吸收了C加加语言的各种优点,还摒弃了C加加里难以理解的多继承、指针等概念。
谁有java和C用socket通信的简单例子
这是用Java写的服务器的程序
import java.net.*;
import java.io.*;
public class Server {
private ServerSocket server;
private Socket client;
public Server() {
boolean flag = true;
try {
server = new ServerSocket(8888); //端口
System.out.println(“服务器正在等到客户端连接……”);
while (flag) {
client = server.accept(); //阻塞
new ServerThread(client).start();
}
server.close();
} catch (Exception e) {
}
}
public static void main(String[] args) {
new Server();
}
private class ServerThread extends Thread {
private Socket clientThread;
private PrintStream out;
private BufferedReader in;
private boolean flag = true;
public ServerThread(Socket client) {
this.clientThread = client;
System.out.println(“主机与客户端成功建立连接,开始通讯!!”);
}
public void run() {
try {
/*
* 超时判断:设置超时时间300秒,中断连接或者300秒内客户端无回应信息则认为中断
* 缺点便是必须把超时时间设置很长,否则客户端待机也认为超时处理,无法判断是否端口
*/
clientThread.setSoTimeout(300000);
out = new PrintStream(client.getOutputStream());
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
while (flag) {
String str = in.readLine(); //阻塞
System.out.println(“客户端:” + str);
out.println(“主机成功接收到您的信息!!”);
}
client.close();
} catch (Exception e) {
//如果异常是连接异常,则输出连接断开
if (e.getMessage() == “Connection reset”) {
System.out.println(“客户端已断开连接!!”);
}
}
}
}
}
这是客户端的
import java.net.*;
import java.io.*;
public class Client {
private Socket client;
public Client() {
InetAddress ip;
try {
System.out.println(“正在连接服务器……”);
ip=InetAddress.getLocalHost();
String localip=ip.getHostAddress();
client = new Socket(localip, 8888); //阻塞
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintStream out = new PrintStream(client.getOutputStream());;
boolean flag = true;
System.out.println(“成功连接到主机,开始通讯!!”);
while (flag) {
System.out.printf(“请输入信息:”);
out.println(input.readLine()); //阻塞
//判断是否与主机断开
if (isConnected()) {
System.out.println(“发生成功!!”);
System.out.println(“主机:” + in.readLine());
} else {
System.out.println(“发生失败!!”);
System.out.println(“与服务器断开连接!!”);
client.close();
break;
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
//判断服务器是否断开的方法,
//通过OutputStream发送一段测试数据,如果发送失败就表示远端已经断开连接
//但会与正常的传送干扰,所以用sendUrgenData
public boolean isConnected() {
try {
client.sendUrgentData(0xFF);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public static void main(String[] args) {
new Client();
}
}
java与c网络通信的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言和java的联系、java与c网络通信的信息别忘了在本站进行查找喔。