Java语言怎么调用网络上另一个计算机里的一个java程序里的函数呢

Java语言怎么调用网络上另一个计算机里的一个java程序里的函数呢?是不是要用socket的方法, 能不能用文件共享直接调用呢

首先使用文件共享来直接调用另一个计算机上的 Java 程序中的函数是可行的,但并不是常见的做法,也不是推荐的方式(同时俺也没有进行过实操),相对而言比较繁琐. 但是Socket 是一种常见的网络通信方式,用于在不同计算机之间建立网络连接.你可以在客户端程序中创建一个 Socket,并将其连接到服务端程序的 IP 地址和端口号上,然后通过网络发送请求并接收响应.

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/741161
  • 你也可以参考下这篇文章:java入门---网络实例操作之使用 Socket 连接到指定主机
  • 除此之外, 这篇博客: 基于Socket编程的聊天工具【Java实现】中的 了解完大体思路之后,接下来我们来看一下各个步骤的具体实现方法: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 客户端与服务器的连接

    套接字使用TCP可以实现两台计算机之间的通信,客户端创建一个套接字,并尝试连接服务器的套接字。java.net.Socket类代表一个套接字,java.net.ServerSocket类为服务器提供了一种监听并连接的通信机制。在连接过程中:

    1. 服务器会创建一个ServerSocket对象,表示通过服务器的端口进行通信。

    public ServerSocket(int port) throws IOExecption  //创建绑定到特定端口的服务器套接字

    2. 服务器调用ServerSocket类的accept()方法,该方法将阻塞等待客户端的连接。

    public Socket accept() throws IOException  //侦听并接收到此套接字的连接

    3. 当服务器在等待客户端连接时,此时一个客户端创建一个Socket对象,并指定服务器名称和端口号请求连接。

    public Socket(String host, int port) throws UnknownHostException, IOException. 创建一个
    流套接字并将其连接到指定主机上的指定端口号。

    4. 当客户端连接上服务器之后,在服务器端,accept()方法会返回一个新的socket引用,该socket连接到客户端的socket。

     

    • 服务器的工作

    当客户端连接上服务器之后,我们知道accept()方法会返回给服务器一个新的socket引用,该socket连接到客户端的socket。那么此时只要有一个客户端连接到服务器了,服务器就要处理客户端的业务。我们知道每个客户端其实都是独立的,而且每个客户端连接服务器的时间都不定,所以我们可以创建一个线程池,每来一个客户端,就将该客户端的业务提交到线程池中,由线程池执行器来执行任务。由于每个客户的业务需求不同,我们可以创建一个类(ExecuteClient)专门来处理客户的业务。

    • 客户端的工作

    当客户端连接上服务器之后,每一个客户端都会有一个Socket对象,该对象通过往服务器写入数据,从服务器读取数据可以实现不同客户端之间的通信。这时候我们也可以创建两个线程专门处理往服务器写入数据(WriteDataToServerThread)和从服务器读取数据(ReadDataFromServerThread)的功能。

  • 您还可以看一下 肖海鹏老师的Java8深入分析课程中的 socket项目演示小节, 巩固相关知识点