galaxy tab
myと myを接続しようとしていlaptop
ます。そのため、ラップトップでサーバー アクティビティを実行し、タブでクライアント アクティビティを実行しようとしていますが、うまくいきません。サーバーとクライアントのコードは次のとおりです。間違いはどこですか?
サーバ:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView txt = (TextView)findViewById(R.id.textView1);
int port = 12345;
byte [] message = new byte [1500];
DatagramPacket p = new DatagramPacket (message,message.length);
try {
InetAddress serveraddr = InetAddress.getByName("192.168.1.116");
DatagramSocket s = new DatagramSocket (port,serveraddr);
while (true){
s.receive(p);
String text = new String (message,0,p.getLength());
txt.setText(text);
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
クライアント:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText edt = (EditText)findViewById(R.id.editText1);
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
String msg = edt.getText().toString();
int port = 12345;
try {
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("192.168.1.116");
int msg_lenght = msg.length();
byte []message = msg.getBytes();
DatagramPacket p = new DatagramPacket(message,msg_lenght,local,port);
s.send(p);
} catch (SocketException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
ログは次のとおりです。
09-17 23:49:55.190: D/dalvikvm(5892): CheckJNI の遅延有効化 09-17 23:49:55.690: D/CLIPBOARD(5892): クリップボード ダイアログを非表示にする! 09-17 23:49:59.590: D/AndroidRuntime(5892): VM をシャットダウンしています 09-17 23:49:59.590: W/dalvikvm(5892): threadid=1: キャッチされない例外で終了するスレッド (group=0x40c4f1f8) 09 -17 23:49:59.590: E/AndroidRuntime(5892): 致命的な例外: メイン 09-17 23:49:59.590: E/AndroidRuntime(5892): android.os.NetworkOnMainThreadException 09-17 23:49:59.590: E /AndroidRuntime(5892): android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) 09-17 23:49:59.590: E/AndroidRuntime(5892): libcore.io.BlockGuardOs.sendto(BlockGuardOs. java:175) 09-17 23:49:59.590: E/AndroidRuntime(5892): libcore.io.IoBridge.sendto(IoBridge.java:463) 09-17 23:49:59 で。137) 09-17 23:49:59.590: E/AndroidRuntime(5892): android.app.ActivityThread.main(ActivityThread.java:4507) 09-17 23:49:59.590: E/AndroidRuntime(5892): at java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 09-17 23:49:59.590: E/AndroidRuntime(5892): java.lang.reflect.Method.invoke(Method.java:511) 09-17 23 :49:59.590: E/AndroidRuntime(5892): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978) 09-17 23:49:59.590: E/AndroidRuntime(5892): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745) 09-17 23:49:59.590: E/AndroidRuntime(5892): dalvik.system.NativeStart.main(ネイティブ メソッド) 09-17 23 :50:34.320: I/Process(5892): シグナルを送信しています。PID: 5892 SIG: 9 4507) 09-17 23:49:59.590: E/AndroidRuntime(5892): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 09-17 23:49:59.590: E/AndroidRuntime(5892): Java で.lang.reflect.Method.invoke(Method.java:511) 09-17 23:49:59.590: E/AndroidRuntime(5892): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 978) 09-17 23:49:59.590: E/AndroidRuntime(5892): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745) 09-17 23:49:59.590: E/AndroidRuntime( 5892): dalvik.system.NativeStart.main(ネイティブ メソッド) 09-17 23:50:34.320: I/Process(5892): 信号を送信しています。PID: 5892 SIG: 9 4507) 09-17 23:49:59.590: E/AndroidRuntime(5892): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 09-17 23:49:59.590: E/AndroidRuntime(5892): Java で.lang.reflect.Method.invoke(Method.java:511) 09-17 23:49:59.590: E/AndroidRuntime(5892): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 978) 09-17 23:49:59.590: E/AndroidRuntime(5892): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745) 09-17 23:49:59.590: E/AndroidRuntime( 5892): dalvik.system.NativeStart.main(ネイティブ メソッド) 09-17 23:50:34.320: I/Process(5892): 信号を送信しています。PID: 5892 SIG: 9 E/AndroidRuntime(5892): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978) 09-17 23:49:59.590: E/AndroidRuntime(5892): com.android.internal で.os.ZygoteInit.main(ZygoteInit.java:745) 09-17 23:49:59.590: E/AndroidRuntime(5892): dalvik.system.NativeStart.main(ネイティブ メソッド) 09-17 23:50:34.320: I/Process(5892): シグナルを送信しています。PID: 5892 SIG: 9 E/AndroidRuntime(5892): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978) 09-17 23:49:59.590: E/AndroidRuntime(5892): com.android.internal で.os.ZygoteInit.main(ZygoteInit.java:745) 09-17 23:49:59.590: E/AndroidRuntime(5892): dalvik.system.NativeStart.main(ネイティブ メソッド) 09-17 23:50:34.320: I/Process(5892): シグナルを送信しています。PID: 5892 SIG: 9