Java的Unix Socket開發包 JUDS
Java Unix Domain Sockets (JUDS) 提供了 Java 的方法用來訪問 Unix domain sockets 套接字。
示例代碼:
package com.google.code.juds.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.google.code.juds.*;
public class TestUnixDomainSocket {
public static void main(String[] args) throws IOException {
if (args.length != 1) {
System.out
.println("usage: java TestUnixDomainSocket socketfilename");
System.exit(1);
}
String socketFile = args[0];
byte[] b = new byte[128];
// Testcase 1.1: Test UnixDomainSocketClient with a stream socket
UnixDomainSocketClient socket = new UnixDomainSocketClient(socketFile,
UnixDomainSocket.SOCK_STREAM);
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
in.read(b);
System.out.println("Text received: \"" + new String(b) + "\"");
String text = "[2] Hello! I'm the client!";
out.write(text.getBytes());
System.out.println("Text sent: " + "\"" + text + "\"");
socket.close();
// Testcase 1.2: Test UnixDomainSocketClient with a datagram socket
socket = new UnixDomainSocketClient(socketFile,
UnixDomainSocket.SOCK_DGRAM);
System.out.println("Provoke and catch an "
+ "UnsupportedOperationException:");
try {
in = socket.getInputStream();
} catch (UnsupportedOperationException e) {
System.out.println("UnsupportedOperationException has been "
+ "thrown as expected.");
}
out = socket.getOutputStream();
text = "[3] Hello! I'm the client!";
out.write(text.getBytes());
System.out.println("Text sent: \"" + text + "\"");
socket.close();
// Testcase 2.1: Test UnixDomainSocketServer with a stream socket
System.out.println("\nTest #2: Test UnixDomainSocketServer\nTestcase "
+ "2.1: Test UnixDomainSocketServer with a stream socket...");
UnixDomainSocketServer ssocket = new UnixDomainSocketServer(socketFile,
UnixDomainSocket.SOCK_STREAM);
in = ssocket.getInputStream();
out = ssocket.getOutputStream();
in.read(b);
System.out.println("Text received: \"" + new String(b) + "\"");
text = "[5] Hello! I'm the server!";
out.write(text.getBytes());
System.out.println("Text sent: " + "\"" + text + "\"");
ssocket.close();
ssocket.unlink();
// Testcase 2.2: Test UnixDomainSocketServer with a datagram socket
System.out.println("Testcase 2.2: Test UnixDomainSocketServer with "
+ "a datagram socket...");
ssocket = new UnixDomainSocketServer(socketFile,
UnixDomainSocket.SOCK_DGRAM);
System.out.println("Provoke and catch an "
+ "UnsupportedOperationException:");
in = ssocket.getInputStream();
try {
out = ssocket.getOutputStream();
} catch (UnsupportedOperationException e) {
System.out.println("UnsupportedOperationException has been "
+ "thrown as expected.");
}
in.read(b);
System.out.println("Text received: \"" + new String(b) + "\"");
ssocket.close();
ssocket.unlink();
}
}
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!