当前位置: 代码迷 >> Android >> 道友请留步,serversocket的启动有关问题
  详细解决方案

道友请留步,serversocket的启动有关问题

热度:55   发布时间:2016-04-27 22:11:28.0
道友请留步,serversocket的启动问题
public class MainActivity extends Activity {
   private Button ss=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ss= (Button) findViewById(R.id.start);
        ss.setOnClickListener(new myListener());
    }

    class myListener implements View.OnClickListener{

        @Override
        public void onClick(View v) {
            SocketThread thread=new SocketThread();
            thread.start();
        }
    }
   class SocketThread extends Thread{

       @Override
       public void run() {
           ServerSocket serverSocket=null;
           try {
              serverSocket=new ServerSocket(8888);
              while(true) {
                  Socket socket = serverSocket.accept();
                  BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                  String str = null;
                  while ((str = br.readLine()) != null) {
                      System.out.println("client: " + str);
                  }
                  socket.close();
           }
           } catch (IOException e) {
               e.printStackTrace();
           }
       }
   }[size=12px]
[/size]



以上是我的代码,为什么这段代码一直启动不了这个8888端口,我换了好几个端口份,发现对这段程序都没有响应,我java测试可以响应,可是android里就不行了,求解答。
------解决思路----------------------
啟動不了端口是什麼意思? 是指client連到這端口沒反應嗎
code應該是ok的, 沒有報什麼錯嗎?
網路權限加了沒

都有的話試試看把socketserver設一下timeout為0
雖然我不覺得是這問題
------解决思路----------------------
這個就不好意思了, 畢竟從code上來看是ok的

剩下的大概就是
在代碼中加上確認ip的code
看看是否有確實抓到ip

其他地方能想到的也就只有網路環境.device之類的,
你的android是在實體手機執行的嗎?