<dependencies>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-unixsocket</artifactId>
<version>0.21</version>
</dependency>
</dependencies>
import jnr.unixsocket.UnixServerSocket;
import jnr.unixsocket.UnixSocket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class UnixSocketServer implements Runnable {
private final String socketFile;
public UnixSocketServer(String socketFile) {
this.socketFile = socketFile;
}
@Override
public void run() {
try {
UnixServerSocket serverSocket = new UnixServerSocket(socketFile);
while (true) {
UnixSocket clientSocket = serverSocket.accept();
new Thread(() -> {
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
String message = reader.readLine();
System.out.println("Received message: " + message);
clientSocket.getOutputStream().write("Server response".getBytes());
clientSocket.getOutputStream().flush();
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
UnixSocketServer server = new UnixSocketServer("/path/to/socketfile");
new Thread(server).start();
}
}
import jnr.unixsocket.UnixSocket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class UnixSocketClient {
private final String socketFile;
public UnixSocketClient(String socketFile) {
this.socketFile = socketFile;
}
public void sendMessage(String message) {
try {
UnixSocket socket = new UnixSocket(socketFile);
socket.getOutputStream().write(message.getBytes());
socket.getOutputStream().flush();
BufferedReader reader = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String response = reader.readLine();
System.out.println("Server response: " + response);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
UnixSocketClient client = new UnixSocketClient("/path/to/socketfile");
client.sendMessage("Hello from client");
}
}