1

このコードで 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 専用に設計されていますか?

4

2 に答える 2

-1

UDP パケットを送信する場合は、java.net.DatagramSocket を使用する必要があります。ここでは、小さいながらも優れたチュートリアルを見つけることができます。

于 2013-06-11T08:22:03.683 に答える