0

我试图使用 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 实例启动。我在没有线程的情况下将 server.accept() 放在了 onStart 中。现在我为它打开一个新的 Runnable,然后修复

4

2 回答 2

1

您的应用程序无法启动服务器的原因可能有多种。我最初的猜测是您正在尝试在模拟器或设备上运行代码,并且您已经有一些其他应用程序在该端口上侦听。

您必须检查/提供logcat跟踪才能找到错误的原因。

于 2012-12-27T09:59:50.213 回答
0

I think so your app will wait for client with port 6666.

 server.accept();// return socket

Above code will return socket if client is available.For more details and clearity you can refer these links::

http://www.happygeek.in/socket-programming-in-android

http://www.edumobile.org/android/android-development/socket-programming/

于 2012-12-27T10:20:08.563 回答