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

网上有关“java能与其它语言书写的程序进行通信吗”话题很是火热,小编也是针对java能与其它语言书写的程序进行通信吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

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();

}

}

AcceptedByMethodRestEasy的 创建一个类,这两个PreProcessInterceptor和AcceptedByMethod。在accept-方法,您可以检查是否有带注释的@QueryParam("name")。如果有一个注释,返回与真实accept-方法。 在preProcess-方法,你可以从查询request.getUri().getQueryParameters().getFirst("name")。 编辑: 下面是一个例子:public class InterceptorTest {

@Path("/")

public static class MyService {

@GET

public String listByName(@QueryParam("name") String name){

return "not-intercepted-" + name;

}

}

public static class MyInterceptor implements PreProcessInterceptor, AcceptedByMethod {

@Override

public boolean accept(Class declaring, Method method) {

for (Annotation[] annotations : method.getParameterAnnotations()) {

for (Annotation annotation : annotations) {

if(annotation.annotationType() == QueryParam.class){

QueryParam queryParam = (QueryParam) annotation;

return queryParam.value().equals("name");

}

}

}

return false;

}

@Override

public ServerResponse preProcess(HttpRequest request, ResourceMethod method)

throws Failure, WebApplicationException {

String responseText = "intercepted-" + request.getUri().getQueryParameters().getFirst("name");

return new ServerResponse(responseText, 200, new Headers<Object>());

}

}

@Test

public void test() throws Exception {

Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();

dispatcher.getProviderFactory().getServerPreProcessInterceptorRegistry().register(new MyInterceptor());

dispatcher.getRegistry().addSingletonResource(new MyService());

MockHttpRequest request = MockHttpRequest.get("/?name=xxx");

MockHttpResponse response = new MockHttpResponse();

dispatcher.invoke(request, response);

assertEquals("intercepted-xxx", response.getContentAsString());

}

}

2. 如果返回return new ServerResponse(responseText, 200, new Headers<Object>());你将失去的终点。你需要返回null如果你还想被传递到终点。

关于“java能与其它语言书写的程序进行通信吗”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[风夜昕]投稿,不代表易麦号立场,如若转载,请注明出处:https://emaipos.com/emai/864.html

(15)

文章推荐

  • 雅漾喷雾怎么看生产日期保质期

    该喷雾可以通过产品官方网站、扫描瓶身二维码、联系客服查询生产日期、保质期。1、官方网站查询。用户可进入雅漾官方网站,在网站搜索栏搜索雅漾喷雾,找到该产品的详细页面,查询生产日期及保质期。2、扫描二维码查询。用户可使用手机,扫描雅韵喷雾瓶体的识别码,查询生产日期及保质期。3、联系客服查询。用户可拨打雅

    2025年09月08日
    17
  • 美白产品什么牌子的好用?

    个人觉得Play小白瓶和sk2小灯泡的美白效果最好,下面具体说说这两款。1、Olay光感小白瓶无数达人都在推荐的一款美白精华,任何美白话题都能看到它的身影,不尝试一把简直对不起我曾经学习标兵的称号!学生党也能消费的起的价位,主打去黄美白,打造光感嫩白肌,比乳液略稀的乳白色质地,液体中可以看到白色珠光

    2025年09月08日
    14
  • 张信哲的歌别怕我伤心歌词

    网上有关“张信哲的歌别怕我伤心歌词”话题很是火热,小编也是针对张信哲的歌别怕我伤心歌词寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。歌名:别怕我伤心演唱:张信哲专辑:绝赞K情歌语种:国语流派:Pop流行发行时间:2014-03-21词:李宗盛曲:李宗盛歌

    2025年09月09日
    9
  • 黑色武装手机论坛的更新

    网上有关“黑色武装手机论坛的更新”话题很是火热,小编也是针对黑色武装手机论坛的更新寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。2009年6月12日更新黑色武装论坛以支持motov8motoz6的内存卡分区和来电秀,还发布了鱼儿的最新的6月包,这对于

    2025年09月09日
    7
  • 欧莱雅青春密码和复颜视黄醇哪个好-

    欧莱雅青春密码和复颜视黄醇都各有优势,具体哪个更好需要根据个人的肤质和需求来决定。以下是它们的不同方面进行的比较:1.活性成分:青春密码采用了高浓度的二裂酵母,而复颜视黄醇则采用了视黄醇棕榈酸酯。2.滋润度:青春密码富含高浓度的玻尿酸,能深层滋润肌肤,而复颜视黄醇则含有角鲨烷和维生素E,能提升肌

    2025年09月10日
    12
  • 卡姿兰定妆哪个款最好用呢

    卡姿兰持久控油黑磁盖散粉和卡姿兰蜗牛气垫调控蜜粉。1、卡姿兰蜗牛气垫调控蜜粉,油皮干皮的大救星,非常好用,控油能力非常棒,出门一整天都不用担心出油,粉质也特别细,这款散粉真的不是吹,实在是太好用了,涂了就跟磨皮了一样,定妆效果很好,追求雾面感妆容的可以尝试这个。2、卡姿兰持久控油黑磁盖散粉,定妆能力

    2025年09月11日
    11
  • 真丽斯这个牌子的化妆品怎么样

    真丽斯优润骨胶原极致保湿水产品功效:质感丰盈的保湿水,为干燥缺水的肌肤注入水能量,赋活每一寸骄嫩肌肤,进一步净化肌肤,改善干燥、粗糙现象;无酒精配方,令每个角质细胞都充满滋润感,提升肌肤吸收力,连续使用后,有效提升面部整体肤色,细致肌肤,让肌肤由内而外水润透明。使用方法:洁肤后,先将本品摇晃均匀,倒

    2025年09月11日
    15
  • 欧莱雅祛斑精油怎么用

    祛斑精油的使用按摩方法使用方法:每天晚上清洁肌肤后依下列步骤使用,2瓶为一疗程(只可晚间使用)。Step1:将调好的按摩精油倒2~3滴于手掌,由下至上涂抹于脸上;额头处是以由内而外的方式涂抹。Step2:用指腹从额头到太阳穴位置,以画螺旋纹方式按摩。Step3:用指腹以点的方式,轻压两眼周围。St

    2025年09月11日
    11
  • 孕妇用什么护肤品好

    因为怀孕身体激素的关系,内分泌比较容易紊乱,皮肤比较容易变得粗糙,日常的护肤也是很需要的。挑选护肤品的时候,要避免使用美白或是祛斑等功效的护肤品,建议使用比较温和的,成分天然的护肤品比较好。推荐几款自己孕期用的比较好的护肤品:德国嫩芙叶酸护肤套装这是来自德国的一个护肤品品牌,主打的温和,这款水乳含有

    2025年09月12日
    6
  • 麻城沈光朗现在怎么样

    网上有关“麻城沈光朗现在怎么样”话题很是火热,小编也是针对麻城沈光朗现在怎么样寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。麻城沈光朗最近情况。经审判委员会讨论,广东省高院再审判决沈光朗无罪。沈光朗及其团队为贵联集团上市做了大量工作,其有合理理由认为其与贵

    2025年09月13日
    2

发表回复

本站作者后才能评论

评论列表(4条)

  • 风夜昕
    风夜昕 2025年09月12日

    我是易麦号的签约作者“风夜昕”!

  • 风夜昕
    风夜昕 2025年09月12日

    希望本篇文章《java能与其它语言书写的程序进行通信吗》能对你有所帮助!

  • 风夜昕
    风夜昕 2025年09月12日

    本站[易麦号]内容主要涵盖:生活百科,小常识,生活小窍门,知识分享

  • 风夜昕
    风夜昕 2025年09月12日

    本文概览:网上有关“java能与其它语言书写的程序进行通信吗”话题很是火热,小编也是针对java能与其它语言书写的程序进行通信吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在...

    联系我们

    邮件:易麦号@sina.com

    工作时间:周一至周五,9:30-18:30,节假日休息

    关注我们