
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ランキング
-
QRコードの作成方法について
-
libreあればopen office削除し...
-
stable diffusionのエラー
-
awsは2年目から自動的に料金が...
-
WindowsXPにApache OpenOffice...
-
この文は、どういう意味ですか?
-
ミニファミコンの権利表記にあ...
-
アクオス
-
FlowchartのMDファイルをPNG化...
-
この話は本当? 中華AI「DeepSe...
-
(大学)数学の質問をするために...
-
特許公報のPDFから項目毎にExce...
-
Xamppはオープンソースのディス...
-
OSS(オープンソースソフトウェ...
-
みなさん、mvなどはどのアプリ...
-
Webサイトのビデオプレーヤーに...
-
研究する文献がたくさんありま...
-
研究する文献がたくさんありま...
-
chatgpt 4oを使っています。あ...
-
【abc】に【完全一致】する正規...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホ
-
Musicカウントフリー適用外?
-
android.os.Systemをimport
-
パソコンのリモート起動・シャ...
-
androidアプリ開発 -間違い探...
-
Google Pixel の買い替え時につ...
-
格安スマホ複数持ちでのポイ活...
-
Androidスマートフォンについて...
-
クラシルリワード って、旧スマ...
-
Googleフォトにバックアップし...
-
Fireタブレットで、この「端末...
-
ChromebookでWi-Fiパスワードを...
-
64bit端末でのOLEDB接続に関して
-
gメールの溜まったメールって消...
-
コマンドプロンプトを使ってip...
-
機種変更する時の、Googleアカ...
-
携帯『ガラ』電池パックが破裂...
-
電波マークが2つあるのですが、...
-
親とGmailが繋がっています。例...
-
UQユーザーです。使用した電話...
おすすめ情報