
JAVAのカテゴリでご回答が得られなかったのでこちらにも投稿いたします。
タブレット(ICONIA TAB A200 (OS:Android4.0.6))から
無線LANで接続されたPC(SONY製 ネットブック (OS:windows 7 32bit))へ
UDPのパケットを送信しようと考えています。
ボタンを押したら文字列"AAA"を送信するだけのものですがボタンを押しても
PCにデータが届きません。
PC側はフリーでダウンロードしたUDP/IPツールを使っていますが、
これは使用実績がありますので、問題ないかと思います。
他の方が作られたUDPパケット送信アプリを使うとうまく送信できているので、
タブレットが通信できないということはなさそうです。
問題なのはアンドロイドのアプリ側だと考えています。
パケットキャプチャソフトで見ても特にパケットはPCにきていなさそうです。
PCからアンドロイドタブレットへPing(ICMPパケット)を送ると、ちゃんと応答があります。
どこかプログラムでおかしいところ、抜けていること、余計なことがありますでしょうか?
(通信部分に関してお願い致します。)
タブレットのIPアドレス192.168.0.3
PCのIPアドレス192.168.0.5
<アンドロイド アプリ main.java>
package my.Package.Tabtest;
import java.io.IOException;
import java.net.*;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class TabtestActivity extends Activity {
public DatagramSocket ds;
public DatagramPacket dp;
public int i;
private TextView mytv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mytv = (TextView)findViewById(R.id.tv1);
}
public void btn_on(View v){
i++;
mytv.setText(String.format("COUNT:%d",i));
try{
InetSocketAddress remoteAddress = new InetSocketAddress("192.168.0.5",42000);
dp = new DatagramPacket("AAA".getBytes(), 4, remoteAddress);
//Socket の設定,通常の Java と同じ
ds = new DatagramSocket(); //DatagramSocket 作成
ds.send(dp); // try catch で利用
}
catch(Exception e){
i++;
i++;
i++;
}
}
}
<アンドロイド アプリ レイアウトファイル main.xml>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/tv1"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PUSH HERE!!!!!!"
android:onClick="btn_on"
/>
</LinearLayout>
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
dp = new DatagramPacket("AAA".getBytes(), 4, remoteAddress);
ここが気になった。”AAA".getBytes()は3バイトになると思われるけれども、長さを4としている。
もしかしてArrayIndexOutOfBounds例外などが発生しているのかもしれない。
catchに流れてないか確認してみてはどうでしょう。
No.1
- 回答日時:
Androidアプリは作ったことありませんが(というかJavaもアレですが)……。
TCPだと成功するのでしょうか?
# パケットキャプチャしてTCPの接続要求がくるのでしょうか?
あと…ちゃんとやっていると思いますが、パーミッションの設定はしてあるんですよね?
http://pentan.info/android/app/permission_list.h …
http://akotao.blogspot.jp/2011/07/androidudp.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
携帯電話で、POSTによるデータ...
-
Bluetoothを使ってすれ違い通信
-
アンドロイド端末でのお気に入...
-
パソコンのリモート起動・シャ...
-
クラシルリワード って、旧スマ...
-
Fireタブレットで、この「端末...
-
Androidスマートフォンについて...
-
機種変更する時の、Googleアカ...
-
携帯『ガラ』電池パックが破裂...
-
EPSONのNT-800のディスプレイド...
-
いつになったら自分でバッテリ...
-
画面がほとんど映らなくなった...
-
64bit端末でのOLEDB接続に関して
-
gメールの溜まったメールって消...
-
教えて下さい。 大昔の携帯電話...
-
同じアカウントのゲームを2台...
-
Googleフォトにバックアップし...
-
ADBのタブレットをG4Macで使いたい
-
TSOってなんですか?
-
BRAVIAのkdl-40nx720というテレ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
android.os.Systemをimport
-
perlでアクセス端末の解像度を...
-
Android端末設定Settings
-
Google Pixel の買い替え時につ...
-
androidSDKについて
-
パソコンのリモート起動・シャ...
-
スマホについての質問です
-
android AVDからネットワーク接続
-
さっき、YouTubeをandroidでみ...
-
Androidアプリ 通信について
-
Googleフォトにバックアップし...
-
Androidスマートフォンについて...
-
クラシルリワード って、旧スマ...
-
gメールの溜まったメールって消...
-
Fireタブレットで、この「端末...
-
親名義でスマホをdocomo契約し...
-
docomo安心モードの簡単端末設...
-
クレジットカードの明細 緑だ...
-
携帯『ガラ』電池パックが破裂...
-
いつになったら自分でバッテリ...
おすすめ情報