我试图使用SocketServer来设置服务器
int i =1, PORT = 6666;
ServerSocket server;
Socket client;
try {
server = new ServerSocket(6666);
for(;;){
client = server.accept();//fail in here
textView.setText("server accept..." + i);
//new MyHttpServer(client, i, PORT).start();
i++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
textView.setText("Fail...");
}
但是,该应用始终在server.accept()
停止。我已经为此应用添加了互联网权限。我不知道为什么?
更新: 我找到了原因。这是因为线程无法从Active实例启动。我在没有线程的情况下在onStart中调用了server.accept()。现在我为它打开一个新的Runnable,然后修复
答案 0 :(得分:1)
您的应用程序无法启动服务器的原因可能有多种。我最初的猜测是你试图在模拟器或设备上运行代码,而你已经有一些其他应用程序在该端口上进行侦听。
您必须检查/提供logcat
跟踪才能找到错误原因。
答案 1 :(得分:0)
我认为您的应用会等待客户端端口6666。
server.accept();// return socket
如果客户端可用,上面的代码将返回套接字。有关更多详细信息和清晰度,您可以参考这些链接::
http://www.happygeek.in/socket-programming-in-android
http://www.edumobile.org/android/android-development/socket-programming/