求教 今天跑了网上的 socket通信 最简单的那种。用模拟机的,就是没反应,啥情况 别人都可以。
permission 也加了
服务器:
package com.example.server;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Main {
private static final int PORT = 8853;
public static void main(String[] args) {
try {
// 实例化服务器套接字 设置端口号9999
ServerSocket s = new ServerSocket(PORT);
while (true) {
Socket socket = s.accept();
// 获取输出流
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
// 写字符串
writer.write("这是一段来自服务器的问候:Hello!");
writer.flush();
writer.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
客户端:
package com.example.server;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
@SuppressLint("HandlerLeak")
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private Button btn_receive;
private TextView txt;
private String line;
private static final String HOST = "192.168.1.101";
private static final int PORT = 8853;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initControl();
}
private void initControl() {
btn_receive = (Button) findViewById(R.id.btn_receive);
txt = (TextView) findViewById(R.id.txt);
btn_receive.setOnClickListener(new ReceiverListener());
}
@SuppressLint("HandlerLeak")
class ReceiverListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Thread() {
@Override
public void run() {
// 执行完毕后给handler发送一个空消息
try {
// 实例化Socket
Socket socket = new Socket(HOST, PORT);
// 获得输入流
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
line = br.readLine();
br.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.sendEmptyMessage(0);
}
}.start();
}
}
// 定义Handler对象
private Handler handler = new Handler() {
@Override
// 当有消息发送出来的时候就执行Handler的这个方法
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 处理UI
txt.setText(line);
Log.i("PDA", "----->" + line);
}
};
}
点按钮没反应 没显示。
求教大神,
是版本问题吗?4.4的,不过这网上 人家说可以跑吗?
permission 也加了
服务器:
package com.example.server;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Main {
private static final int PORT = 8853;
public static void main(String[] args) {
try {
// 实例化服务器套接字 设置端口号9999
ServerSocket s = new ServerSocket(PORT);
while (true) {
Socket socket = s.accept();
// 获取输出流
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
// 写字符串
writer.write("这是一段来自服务器的问候:Hello!");
writer.flush();
writer.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
客户端:
package com.example.server;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
@SuppressLint("HandlerLeak")
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private Button btn_receive;
private TextView txt;
private String line;
private static final String HOST = "192.168.1.101";
private static final int PORT = 8853;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initControl();
}
private void initControl() {
btn_receive = (Button) findViewById(R.id.btn_receive);
txt = (TextView) findViewById(R.id.txt);
btn_receive.setOnClickListener(new ReceiverListener());
}
@SuppressLint("HandlerLeak")
class ReceiverListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Thread() {
@Override
public void run() {
// 执行完毕后给handler发送一个空消息
try {
// 实例化Socket
Socket socket = new Socket(HOST, PORT);
// 获得输入流
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
line = br.readLine();
br.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.sendEmptyMessage(0);
}
}.start();
}
}
// 定义Handler对象
private Handler handler = new Handler() {
@Override
// 当有消息发送出来的时候就执行Handler的这个方法
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 处理UI
txt.setText(line);
Log.i("PDA", "----->" + line);
}
};
}

点按钮没反应 没显示。
求教大神,
是版本问题吗?4.4的,不过这网上 人家说可以跑吗?