java能与其它语言书写的程序进行通信吗

作者&投稿:敖米 (若有异议请与网页底部的电邮联系)
Java 和其它语言之间怎么进行Socket通信?用JAVA编写server,C语言编写Client,可以实现吗?怎么实现?~

本答案提交时间:2011-6-12 17:17

Java 和其它语言之间进行Socket通信使用Socket和ServerSocket类。
用JAVA编写server,C语言编写Client,当然可以实现通信(示例在最后)。

1、Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket 是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
   重要的Socket API:
   java.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,使用频繁的三个方法:
   . Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。
   . getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例,。
   . getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。
   注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。
   2.如何开发一个Server-Client模型的程序
   开发原理:
   服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。
   客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。

下面这个程序用JAVA建立了一个服务器,它一直监听10000端口,等待用户连接,而用户端则可以使用C写的程序来连接该服务器。
本程序在建立连接后给客户端返回一段信息,然后结束会话。这个程序一次只能接受一个客户连接。

import java.net.*;
import java.io.*;

public class Server
{
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;

public Server()
{
try
{
ss = new ServerSocket(10000);
while (true)
{
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);

String line = in.readLine();
out.println("you input is :" + line);
out.close();
in.close();
socket.close();
}
ss.close();
}
catch (IOException e)
{}
}

public static void main(String[] args)
{
new Server();
}
}

换下思路,C去调用数据库,然后保存到数据库阿java调用数据库得到C处理完存入数据库的数据就可以了.

结构如图这样就少想不同语言间的交流,而且java和C的交互不是很好,貌似java貌似可以支持DLL,但是不方便

ava 和其它语言之间进行Socket通信使用Socket和ServerSocket类。
用JAVA编写server,C语言编写Client,当然可以实现通信(示例在最后)。

1、Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket 是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
重要的Socket API:
java.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,使用频繁的三个方法:
. Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。
. getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例,。
. getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。
注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。
2.如何开发一个Server-Client模型的程序
开发原理:
服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。
客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。

下面这个程序用JAVA建立了一个服务器,它一直监听10000端口,等待用户连接,而用户端则可以使用C写的程序来连接该服务器。
本程序在建立连接后给客户端返回一段信息,然后结束会话。这个程序一次只能接受一个客户连接。

import java.net.*;
import java.io.*;

public class Server
{
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;

public Server()
{
try
{
ss = new ServerSocket(10000);
while (true)
{
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);

String line = in.readLine();
out.println("you input is :" + line);
out.close();
in.close();
socket.close();
}
ss.close();
}
catch (IOException e)
{}
}

public static void main(String[] args)
{
new Server();
}
}


Java语言的特点有哪些
面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。单从面向对象的特性来看,Java类似于Small Talk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了Small Talk。 3.分布式 Java包括一个支持HTTP和FTP...

JAVA是什么软件?主要是干什么用的?
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。相关工作用途:...

龙神ava版和普通版能联机吗
龙神ava版和普通版能联机。查询龙神app得知,龙神ava版和普通版能联机。龙神ava版和普通版可以互通的,只要把原来存档文件放进去就可以联机了。Ava是第三方修改版,与正式版界面不一样,并且有界面中文语言。龙神ava版是一款龙神模拟器,ava适用于windows7、8、9、10系统,普通版适用windows7、8、9、10、...

怎么把国服AVA语音变成韩语语音或俄语
直接网上找你需要的AVA客服语就OK了.要不就下载一个语言转换软件.再把国语插入语言转换.选择你要转换的语言也可以..记得分给我噢

Lava-LavaLava-Lava产品介绍
注册用户超过4000万,活跃用户接近400万。其功能包括文字通讯、语音通讯、视频通讯、文件传输、文件共享、表情贴图、离线消息、远程控制、界面自定义、多语言支持等,同时提供丰富的接口服务如用户绑定接口、消息发送接口、翻译接口和用户管理接口等。合作伙伴可以通过这些接口深度整合,实现丰富的功能扩展。

ava游戏语音是什么语言
英语,而且是全英语,感觉超真实!很有实战的感觉。

好听的女生英文名字(带翻译)
Ava 解释:Ava在多种语言中有不同的意思,包括生命、呼吸和美丽等。作为一个简洁而又有深度的名字,Ava适合各种个性类型的女生。它既能够体现女性的柔美和优雅,又能够展现出一种生命力与活力。近年来,Ava在英语国家中是一个非常流行的女孩名字。Zoe 解释:Zoe意为“生命”,是一个非常有...

AVA论坛发言
其次,要保持发言的礼貌和文明。在论坛中,我们应该避免使用攻击性、侮辱性的语言,而是应该用友善、理性的方式表达自己的看法。这样不仅有助于维护论坛的和谐氛围,也能够吸引更多的人参与到讨论中来。同时,我认为在AVA论坛发言还应该注重信息的准确性和真实性。在分享自己的观点和看法时,我们应该尽量提供...

Java语言的特点
所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互...

...视频问答新SOTA!北大全新Video-LLaVA视觉语言大模型,秒懂视频笑点...
引领视频问答的新里程碑,北京大学的研究团队带来了革命性的Video-LLaVA,一款强大的视觉语言大模型,它彻底革新了我们对多媒体内容的理解。这款创新模型不仅能够接收图片,还能解析视频,展现出了卓越的性能,揭示了统一输入在提升大模型视觉理解能力中的关键作用。Video-LLaVA巧妙地采用了LanguageBind的对齐...

阿克陶县15924389881: java虚拟机上可以运行其他语言编写的程序吗 -
汲向乙氧: JAVA虚拟机真正执行的是bytecode,即字节码.无论你用什么语言,只要有对应的编译器能生成满足虚拟机要求的字节码,都是可以运行的.只不过实际上很少有语言这么干,因为Java已经是一个不错的语言了.

阿克陶县15924389881: Java 和其它语言之间怎么进行Socket通信?用JAVA编写server,C语言编写Client,可以实现吗?怎么实现? -
汲向乙氧: 本答案提交时间:2011-6-12 17:17 Java 和其它语言之间进行Socket通信使用Socket和ServerSocket类.用JAVA编写server,C语言编写Client,当然可以实现通信(示例在最后). 1、Socket和ServerSocket类库位于java.net包中.ServerSocket...

阿克陶县15924389881: java能与c++混编吗?
汲向乙氧: 用jni调用可以, JNI是Java Native Interface的缩写,中文为JAVA本地调用.从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了.

阿克陶县15924389881: Java语言入门级有哪些特色?
汲向乙氧: 1、Java是简单的 Java与C++极为相似,但却简单得多.高级编程语言的所有特性中,不是绝对需要的都已删去了.例如,Java没有算符过载、标题文件、预处理、指针运...

阿克陶县15924389881: java 程序向其它程序提供接口?如何完成 -
汲向乙氧: 是指java 和其他语言的数据交互吗? 1:采用J2EE 的Servlet 完成特定功能,部署Tomcat后 其他语言中可通过Http请求访问 2:直接采用JSP ,和Servlet类似 3:采用Socket和其他程序通讯 4:采用中间件,比如 和Flex通讯 可以使用LCDS或者Blazeds 直接在Flex中调用Java端的方法.. 5:采用WebService 使用web服务 与其他程序交互!

阿克陶县15924389881: Java客户端远程调用C服务器
汲向乙氧: 真没有作过相关的开发,Java和C之间相互调用,本地的使用jni或者是直接发送Windows消息;远程的,都是使用socket通信的.谈一些想法,希望能给你些帮助,纸上谈兵: 1)现在常用的异构系统之间的调用,采用Web Service的方法,没做...

阿克陶县15924389881: Java语言可不可以使用C++类?如何使用? -
汲向乙氧: 可以 不过你要写一个接口给java程序读取,你可以查查javah命令,可以把一个java类生成一个C/C++源码文件(JNI之类的),这个作用机制就是让java使用其它语言的接口.我简单介绍一下在java使用其它语言的用法吧.首先要建立一个java类...

阿克陶县15924389881: Java 写的应用程序如何调用PHP写的应用程序?接口怎么调用? -
汲向乙氧: PHP是编程语言和应用程序服务器的结合.PHP和其它的编程语言类似,使用变量存储临时数值,使用操作符处理变量.PHP的真正价值在于它是一个应用程序服务器. 当谈到应用程序服务器的时候,我是指一个把几个不同的技术组合为一个...

阿克陶县15924389881: 如何在java中实现c语言中的联合的功能??? -
汲向乙氧: 用类, 只有这样.class DateE{ long ul[2]; int ui[4]; byte uc[8];//get/set方法 } java没有 unsigned long,如果数很大就换成BigDecimal ,或 BigInteger

阿克陶县15924389881: java为什么可以跨平台执行 -
汲向乙氧: java是跨平台的,就是生成的.class文件拿到任何系统平台都能运行,其实是建立在虚拟机上的,也就是jvm,你装jkd的时候就带了. 所有的java程序都是在虚拟机也就是jvm是运行的,而且jvm的版本也不同,有windows版本的还有linux版本的,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网