当前位置: 代码迷 >> Java相关 >> 安卓作为客户端与java服务器端进展SOCKET通信
  详细解决方案

安卓作为客户端与java服务器端进展SOCKET通信

热度:38   发布时间:2016-04-22 20:46:17.0
安卓作为客户端与java服务器端进行SOCKET通信
想以安卓端作为客户端,java作为服务器端进行简单地SOCKET通信,但是服务器端与客户端里连接不上IP也改过什么“127.0.0.1”
还有本机IP,利用getLocalIPAdress()函数还报错问题,求大神指点。下面是我的代码和问题详细描述:

服务器端:
import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  
import java.io.PrintWriter;  
import java.net.ServerSocket;  
import java.net.Socket;  
public class service_java_test {
public static void main(String[] args) throws IOException {  
        ServerSocket server = new ServerSocket(10000); //绑定的端口号 
        Socket socket = server.accept();  //连接不成功以至于下一行的"连接成功"
          //在调试区显示不出来
        System.out.println("连接成功"); 
        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));  
        PrintWriter out = new PrintWriter(socket.getOutputStream());  
        while (true) {  
            String msg = in.readLine();  
            System.out.println(msg);  
            out.println("Server received " + msg); //向接收方发送已接受到了的语句 
            out.flush();  
            if (msg.equals("bye")) {  //若接收到"bye"则break
                break;  
            }  
        }  
        socket.close();  
    }  
}

安卓客户端:
package com.example.t4_android;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView myTextView;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myTextView = (TextView) findViewById(R.id.textView1);  
        Thread t = new Thread(new Runnable(){ 
        public void run(){
        try {
         Socket sk = new Socket("192.168.253.1", 10000);//绑定套接字,这一行一直执行不成功
          //以至于下一行在安卓页面的TextView上
          //不显示“已连接”的字样
          //"192.168.253.1"是我利用DOS命令查找
          //的本机IP
         myTextView.setText("已连接");
           } catch (Exception e) {
          e.printStackTrace();
             }
              }
           });
        t.start(); 
    }
}



------解决思路----------------------
不要叫大神了,我也是小菜。
我看你Android 客户端也没写接收程序吧,还有为什么//out.flush();  //清空缓冲区要把这句注释掉
  相关解决方案