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