無線LAN経由のudp接続android

私はアンドロイド携帯電話(2.3)と私のPCとの間の無線LAN経由でUDP接続を作成することに固執しています。

ローカルサーバーにUDP接続を作成する方法を知っています。私の問題はアンドロイドのアドホックネットワークをサポートすることです。なぜなら、私は自分のPCのWiFiを直接検索しようとすると、それは表示されないので、まず自分のPC上に仮想ホットスポットを作成してから、

この後、私は自分の携帯電話からPC上のサーバにデータパケットを送信しようとします。

public class WifitestActivity extends Activity {
    WifiManager w;
    TextView status;
    InetAddress server_ip;
    int server_port = 9876;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    status = (TextView) findViewById(R.id.status);

    w = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);

    if (!w.isWifiEnabled()) {
        status.setText("switching ON wifi ");
        w.setWifiEnabled(true);
    } else {
        status.setText("Its already ON ");

    }

    int x;
    WifiInfo info = w.getConnectionInfo();
    status.append("\n\nWiFi Status: " + info.toString());

    x = info.getIpAddress();
    String str = info.getMacAddress();

    status.append("\n\nmac address===" + str + "  ,ip===" + x);

    try {
        server_ip = InetAddress.getByName("192.168.181.1");//ip of my server.How to dynamically update it
    } catch (UnknownHostException e) {
        status.append("Error at fetching inetAddress");
    }

    DatagramSocket s = new DatagramSocket(server_port, server_ip);
   //**ERROR AT PREVIOUS LINE, I HAD TO FORCE STOP MY APP EVERTIME I RUN
   //MY CODE**
    String str = "TEST MESSAGE !!!";
    byte b1[];
    b1 = new byte[100];
    b1 = str.getBytes();
    DatagramPacket p1 = new DatagramPacket(b1, b1.length, server_ip,
            server_port);
}

}

私のPCで動作するサーバコード:

    import java.io.*;
    import java.net.*;
    class server2
    {
        static InetAddress clientip;
        static int clientport;
        static DatagramPacket p3;

        public static void main(String args[])throws Exception
        {

        DatagramSocket s = new DatagramSocket(9876);

        byte b1[],b2[];
        b1=new byte[100];
        b2=new byte[100];

        DatagramPacket p1 = new DatagramPacket(b1,b1.length);
        s.receive(p1);

        b1=p1.getData();
        String str = new String( b1);

        clientport = p1.getPort();  //packet mein save hota hai 
        clientip=p1.getAddress();

        System.out.println("RECIEVED FROM CLIENT IP ="+clientip+" port="+clientport+" data="+str);
        }

}

クライアントコード(WifiTestActivity)にエラーがあり、私の電話でそれを実行しようとするたびに私のアプリがクラッシュします。 Plzzは私を助けます!

0
@Infinityはあなたにそれを働かせましたか?
追加された 著者 John x,
私はいくつかのリソースに私を導くことができますか、私は同じ種類のシステムを示唆しなければなりません...
追加された 著者 John x,
あなたの時間の@Infinity tnx
追加された 著者 John x,
あなたのlogcatの出力は何ですか? StackTraceも投稿する必要があります。
追加された 著者 rekire,
はい、それは働いた!
追加された 著者 gauravsapiens,
1-電話機またはPCのいずれかをホットスポット(サーバー)として作成し、もう一方をホットスポット(サーバー)に接続します。 2-上記のコードを使用してください。 3 - マニフェストで権限を指定する
追加された 著者 gauravsapiens,

1 答え

インターネットアクセス許可が必要です。マニフェストにこれを追加:

0
追加された
あなたのlogcatの出力は何ですか?
追加された 著者 rekire,
いいえ、それは動作しません!
追加された 著者 gauravsapiens,