Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将函数公开给其他进程_Java_Sockets_Ipc - Fatal编程技术网

Java 将函数公开给其他进程

Java 将函数公开给其他进程,java,sockets,ipc,Java,Sockets,Ipc,我使用的这段代码使用套接字公开了一个简单的函数: 我做错了什么?日志显示它卡在输入接收线路上,有时会抛出一个异常,表示套接字正在使用中。对于初学者来说,您正在循环中创建ServerSocket[i],这显然不是您想要的。您只需要创建一次,然后有一个不断从套接字读取的循环。首先,您在循环中创建ServerSocket[i],这显然不是您想要的。您只需要创建一次,然后有一个不断从套接字读取的循环。由于您忘记刷新发送方的输出流(另一个进程),readLine()会被卡住 当使用套接字时,计算机将缓

我使用的这段代码使用套接字公开了一个简单的函数:




我做错了什么?日志显示它卡在输入接收线路上,有时会抛出一个异常,表示套接字正在使用中。对于初学者来说,您正在循环中创建ServerSocket[i],这显然不是您想要的。您只需要创建一次,然后有一个不断从套接字读取的循环。

首先,您在循环中创建ServerSocket[i],这显然不是您想要的。您只需要创建一次,然后有一个不断从套接字读取的循环。

由于您忘记刷新发送方的输出流(另一个进程),readLine()会被卡住

当使用套接字时,计算机将缓冲一些数据(通常为4KB),因为通过网络发送少量数据成本很高。因此,如果数据较少,则需要告诉它“立即发送”。

readLine()会被卡住,因为您忘记刷新发送方的输出流(另一个进程)

当使用套接字时,计算机将缓冲一些数据(通常为4KB),因为通过网络发送少量数据成本很高。因此,如果数据较少,则需要告诉它“立即发送”

while (true) {
  try {
    ServerSocket serverSocket = new ServerSocket(7070);
    Socket clientSocket = serverSocket.accept();
    String input = (new BufferedReader(new InputStreamReader(clientSocket.getInputStream()))).readLine();
    synchronized (this.map) {
      ObjectOutputStream o = new ObjectOutputStream(clientSocket.getOutputStream());
      o.writeChars(map.get(input));
      o.close();
    }
    clientSocket.close();
    serverSocket.close();
  } catch(Exception e) {
    e.printStackTrace();
  }
}