このコードで UnixDomain ソケットを開くネイティブ アプリを取得しました。
struct sockaddr_un local;
int len;
int fd;
fd = socket(AF_UNIX, SOCK_DGRAM, 0);
local.sun_family = AF_UNIX;
strcpy(local.sun_path, "path.to.socket");
len = strlen(local.sun_path) + sizeof(local.sun_family);
bind(fd, (struct sockaddr*)&local, sizeof(local));
ソケットが作成されていることがわかるため、上記のコードは機能しています。
今、Java で書かれた Android アプリから UDP パケットを送信したいと考えています。LocalSocket クラスを使用する必要があると思います。問題は、UDP に LocalSocket クラスを使用する方法がわからないことです。私が見るすべてのチュートリアルは、TCP(SOCK_STREAM) 用です。
以下のコードを使用して作成したソケットに接続しようとしましたが、エラーが発生します
LocalSocket socket = new LocalSocket();
socket.connect(new LocalSocketAddress( "path.to.socket" ));
これは私にConnection refused
エラーを与えます
同じファイルにバインドしようとしましたが、Address already in use
エラーが表示されます。
UDP に LocalSocket クラスを使用できますか、それとも TCP 専用に設計されていますか?