这是我的代码示例

     TextView textStatus = (TextView) findViewById(R.id.editText1);
     ServerSocket serverSocket = new ServerSocket(SERVERPORT);
     .
     .
     Socket client = serverSocket.accept();
     .
     .
     textStatus.append("TEXT");
     client.close();

这使android应用程序强制关闭。如果我删除textStatus.append,它将起作用。同样,如果删除Socket client = ...client.close(),它将在屏幕上显示TEXT。

因此,套接字client = serverSocket.accept();以某种方式影响了textStatus变量。

谁能告诉我这是怎么回事?

最佳答案

textStatus可能为null。检查以确保R.id.editText1是您在XML文件中使用的实际ID。

另外,任何可能长时间运行的任务都不应在UI线程上执行。您的应用程序性能将非常糟糕。请参阅Painless Threading文章,并尝试将服务器通信移至其他线程。或者考虑改为使用IntentService。我更喜欢IntentService。

关于android - Android中的SocketS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7830797/

10-09 20:28