【发布时间】:2011-06-12 05:25:09
【问题描述】:
我似乎无法在 java 服务器应用程序和 Android 之间建立简单的 TCP 连接(我已经尝试过模拟器和 Android Dev Phone 2)。我在模拟器上收到此错误“应用程序数据接收(进程 com.mdog.datareceive)已意外停止。请重试。”
请原谅我,但我对 android 很陌生。所以我不知道如何调试它......但我没有尝试任何太复杂的东西。最终,我想尝试“消耗”我在应用程序中收到的字节。并让 TCP 在后台运行......但现在只需让手机和计算机进行通信就可以了。
如果你能帮助我,那就太棒了。
Android端代码:
public class Receive extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = new TextView(this);
Socket connectionSocket = null;
byte[] inputHolderByteArray = new byte[5*1024];
/* Connect to Server */
try {
connectionSocket = new Socket("192.168.0.104", 11313);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
/* Send an s to server to start transmission */
try {
PrintWriter out = new PrintWriter(connectionSocket.getOutputStream(), true);
out.print('s');
out.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
/* read server transmission */
try {
connectionSocket.getInputStream().read(inputHolderByteArray);
} catch (IOException e) {
e.printStackTrace();
}
tv.setText("done");
setContentView(tv);
}
}
【问题讨论】:
-
您需要实际异常的堆栈跟踪,您可以从 logcat 中获取它,或者使用 Eclipse 中的 DDMS 透视图,或者从命令行使用 adb logcat。
-
是的,我们需要 stacktrace 和 Mike,我建议您使用 'Log.e' 而不是 'e.printstackTrace()' 来记录错误。
标签: java android tcp client client-server