0

手短に話そうと思います。

サーバーを経由せずに、2 つの Java アプリ (後で Android に転送される) 間の通信を作成したいと考えています。そのため、私は何週間もかけて探し回り、多くの作業を行った後、stun と ice4j を見つけました。ここで見つけたice4jの使用方法の最良の説明は、スタンサーバーをエージェントに追加するために何をする必要があるかをほとんど示していました(エージェントが何であるかはよくわかりません.STUNとの通信を管理するだけです)および TURN)、このコードを介して:

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.ice4j.Transport;
import org.ice4j.TransportAddress;
import org.ice4j.ice.Agent;
import org.ice4j.ice.IceMediaStream;
import org.ice4j.ice.harvest.StunCandidateHarvester;

public class ice4jTesting {

    public static void main(String[] args) {

        Agent agent = new Agent();
        String[] hostnames = new String[] {"jitsi.org", "numb.viagenie.ca", "stun.ekiga.net"};

        for(String hostname: hostnames) {
            try {
                TransportAddress address;

                address = new TransportAddress(InetAddress.getByName(hostname), 3478, Transport.UDP);
                agent.addCandidateHarvester(new StunCandidateHarvester(address));
            } catch (UnknownHostException ex) {
                Logger.getLogger(SimpleStun.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        IceMediaStream stream = agent.createMediaStream("audio");
        int port = 5000;
        try {
            agent.createComponent(stream, Transport.UDP, port, port, port+100);
            // The three last arguments are: preferredPort, minPort, maxPort
        } catch (IllegalArgumentException | IOException ex) {
            Logger.getLogger(SimpleStun.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

ただし、この後、チュートリアルでは、 githubSDPUtilsで見つけた ice4j のソース コードにあるクラスを使用して、エージェントから SDP 情報を受け取ります。ただし 、中央の maven リポジトリから ice4j.jar を取得し、それを通常の netbeans プロジェクトに追加しました (これを行ったのは、maven にあまり詳しくなく、通常のプロジェクトに通常のライブラリが必要だったからです)。このjarライブラリにはクラスがありません。このコードを自分で修正するのに十分なほど理解していないので、上記のコードを修正するのを手伝ってくれるか、方法の例を見せてくれるかどうか疑問に思っていました.タイトルの質問に答えます。SDPUtils

ただし、最後の文で私が言ったことを実行するか、いくつかのサンプル コードを教えてもらえない限り、あなたの助けはおそらく役に立たないでしょう。わかりません。

私はこれを理解するために今週末までに持っています。ですから、助けていただける方、または知っている方がいらっしゃいましたら、どうぞよろしくお願いいたします。

ここまで読んでくれて、助けてくれてありがとう:)

4

1 に答える 1