想以安卓端作为客户端,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(); //清空缓冲区要把这句注释掉