私は現在、2つのアンドロイドデバイス間でJavaソケットを使用して簡単なチャットアプリケーションを作成しています 私の問題はクライアントがサーバに接続した後にIPアドレスとポートを完全に入力したときです。 クライアント側突然クライアントからサーバに任意のテキストを送信しようと、私は多くのことを検索止めるが、私はそれは私のコードクライアント側はサーバにテキストを送信しません
サーバー側で間違っているものを見つけることができませんでした:
Thread TH=new Thread(new Runnable() {
@Override
public void run() {
try {
status.setText("hosted on"+ ip);
ss=new ServerSocket(8080);
while(true) {
S = ss.accept();
status.post(new Runnable() {
@Override
public void run() {
status.setText("connected");
}
}
);
CommunicationThread commThread = new CommunicationThread(S);
new Thread(commThread).start();
class CommunicationThread implements Runnable {
private Socket ClientSocket;
DataInputStream DIS;
public CommunicationThread(Socket ClientSocket) throws IOException {
this.ClientSocket = ClientSocket;
DIS = new DataInputStream(ClientSocket.getInputStream());
data = DIS.readUTF();
}
public void run() {
while (!Thread.currentThread().isInterrupted()) {
data = data.toString();
tv_receive.post(new Runnable() {
public void run() {
tv_receive.setText(data);
}
クライアント側:
btn_connect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TH=new Thread(new Runnable() {
@Override
public void run() {
try {
S = new Socket(et_IP_Address.getText().toString(),Integer.parseInt(et_port.getText().toString()));
DOS = new DataOutputStream(S.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
});// End of thread
TH.start();
}
}); // end of buutton
// Sending
btn_send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TH=new Thread(new Runnable() {
@Override
public void run() {
try {
//while(true) {
DOS.write(Integer.parseInt(et_message.getText().toString()));
tv_transmit.post(new Runnable() {
@Override
public void run() {
tv_transmit.setText(et_message.getText());
}
});
try {
DOS.flush();
}
catch (IOException e) {
e.printStackTrace();
}
// }
}
catch (IOException e) {
e.printStackTrace();
}
try {
DOS.close();
} catch (IOException e) {
e.printStackTrace();
}
私は、クライアントがクラッシュした後に何を得ること::
03-16 10:55:09.434 5521-5521/? D/dalvikvm: Not late-enabling CheckJNI (already on)
03-16 10:55:09.554 5521-5521/app.droid.moring E/Trace: error opening trace file: No such file or directory (2)
03-16 10:55:09.804 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.app.Application.registerOnProvideAssistDataListener, referenced from method com.android.tools.fd.runtime.BootstrapApplication.registerOnProvideAssistDataListener
03-16 10:55:09.804 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve virtual method 232: Landroid/app/Application;.registerOnProvideAssistDataListener (Landroid/app/Application$OnProvideAssistDataListener;)V
03-16 10:55:09.804 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
03-16 10:55:09.804 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.app.Application.unregisterOnProvideAssistDataListener, referenced from method com.android.tools.fd.runtime.BootstrapApplication.unregisterOnProvideAssistDataListener
03-16 10:55:09.804 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve virtual method 235: Landroid/app/Application;.unregisterOnProvideAssistDataListener (Landroid/app/Application$OnProvideAssistDataListener;)V
03-16 10:55:09.804 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
03-16 10:55:09.804 5521-5521/app.droid.moring I/InstantRun: Instant Run Runtime started. Android package is app.droid.moring, real application class is null.
03-16 10:55:09.804 5521-5521/app.droid.moring W/InstantRun: No instant run dex files added to classpath
03-16 10:55:09.824 5521-5521/app.droid.moring E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.android.tools.fd.runtime.MonkeyPatcher.monkeyPatchExistingResources
03-16 10:55:09.824 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve check-cast 1901 (Landroid/util/ArrayMap;) in Lcom/android/tools/fd/runtime/MonkeyPatcher;
03-16 10:55:09.824 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x1f at 0x025e
03-16 10:55:09.824 5521-5521/app.droid.moring E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.android.tools.fd.runtime.MonkeyPatcher.pruneResourceCache
03-16 10:55:09.824 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve const-class 1901 (Landroid/util/ArrayMap;) in Lcom/android/tools/fd/runtime/MonkeyPatcher;
03-16 10:55:09.824 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x1c at 0x0060
03-16 10:55:09.874 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.view.Window$Callback.onProvideKeyboardShortcuts, referenced from method android.support.v7.view.WindowCallbackWrapper.onProvideKeyboardShortcuts
03-16 10:55:09.874 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve interface method 16095: Landroid/view/Window$Callback;.onProvideKeyboardShortcuts (Ljava/util/List;Landroid/view/Menu;I)V
03-16 10:55:09.874 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002
03-16 10:55:09.874 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
03-16 10:55:09.874 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
03-16 10:55:09.874 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve interface method 16097: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
03-16 10:55:09.874 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002
03-16 10:55:09.874 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
03-16 10:55:09.874 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve interface method 16101: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
03-16 10:55:09.874 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002
03-16 10:55:09.874 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
03-16 10:55:09.874 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve virtual method 681: Landroid/content/res/TypedArray;.getChangingConfigurations()I
03-16 10:55:09.874 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
03-16 10:55:09.874 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
03-16 10:55:09.874 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve virtual method 703: Landroid/content/res/TypedArray;.getType (I)I
03-16 10:55:09.874 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x6e at 0x0008
03-16 10:55:09.904 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.widget.FrameLayout.startActionModeForChild, referenced from method android.support.v7.widget.ActionBarContainer.startActionModeForChild
03-16 10:55:09.904 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve virtual method 16529: Landroid/widget/FrameLayout;.startActionModeForChild (Landroid/view/View;Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
03-16 10:55:09.904 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x6f at 0x0002
03-16 10:55:09.904 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.content.Context.getColorStateList, referenced from method android.support.v7.content.res.AppCompatResources.getColorStateList
03-16 10:55:09.904 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve virtual method 418: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList;
03-16 10:55:09.904 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
03-16 10:55:09.914 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawable
03-16 10:55:09.914 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve virtual method 644: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
03-16 10:55:09.914 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
03-16 10:55:09.914 5521-5521/app.droid.moring I/dalvikvm: Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawableForDensity
03-16 10:55:09.914 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve virtual method 646: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
03-16 10:55:09.914 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
03-16 10:55:09.924 5521-5521/app.droid.moring E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
03-16 10:55:09.924 5521-5521/app.droid.moring W/dalvikvm: VFY: unable to resolve instanceof 151 (Landroid/graphics/drawable/RippleDrawable;) in Landroid/support/v7/widget/AppCompatImageHelper;
03-16 10:55:09.924 5521-5521/app.droid.moring D/dalvikvm: VFY: replacing opcode 0x20 at 0x000c
03-16 10:55:09.964 5521-5524/app.droid.moring D/dalvikvm: GC_CONCURRENT freed 211K, 10% free 2590K/2860K, paused 5ms+14ms, total 25ms
03-16 10:55:10.154 5521-5521/app.droid.moring D/libEGL: loaded /system/lib/egl/libEGL_emulation.so
03-16 10:55:10.154 5521-5521/app.droid.moring D/libEGL: loaded /system/lib/egl/libGLESv1_CM_emulation.so
03-16 10:55:10.174 5521-5521/app.droid.moring D/libEGL: loaded /system/lib/egl/libGLESv2_emulation.so
[ 03-16 10:55:10.174 5521: 5521 D/ ]
HostConnection::get() New Host Connection established 0xb84e6710, tid 5521
03-16 10:55:10.314 5521-5521/app.droid.moring W/gralloc_ranchu: Gralloc pipe failed
03-16 10:55:10.364 5521-5521/app.droid.moring D/OpenGLRenderer: Enabling debug mode 0
03-16 10:55:32.854 5521-5884/app.droid.moring W/dalvikvm: threadid=16: thread exiting with uncaught exception (group=0xb0ff2908)
03-16 10:55:32.854 5521-5884/app.droid.moring E/AndroidRuntime: FATAL EXCEPTION: Thread-211
java.lang.NumberFormatException: Invalid int: "hi"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:375)
at java.lang.Integer.parseInt(Integer.java:366)
at java.lang.Integer.parseInt(Integer.java:332)
at app.droid.moring.MainActivity$2$1.run(MainActivity.java:75)
at java.lang.Thread.run(Thread.java:856)
が突然通常停止有効な数値の整数値を
Integer.parseInt()
呼び出しを削除、または入力のいずれかがクラッシュを意味し、クラッシュが常に付属しています例外、logcatにあるスタックトレースエラーを投稿してください。 – Yazan'data = DIS.readUTF();'。いない!次のwhileループに入れます。 – greenapps
サーバーがreadUTFを使用するようにするには、クライアントがwriteUTFを使用する必要があります。 – greenapps