初学android,通过socket向目标端口发送数据。接收端是网上下的tcpclientserver这个软件。代码参考的http://blog.csdn.net/x605940745/article/details/17001641 方法1。可惜服务端软件显示连接正常,就是收不到测试数据。于是想通过调试模式看看发生了什么。我把断点打到button事件里或者放到thread里,run()方法里,无论F7还是F8都是直接就过去了。怎么进入线程里调试。
定义线程
class MyThread extends Thread { public String txt1; public MyThread(String str) {
txt1 = str;
} @Override
public void run() {
//定义消息
Message msg = new Message();
msg.what = 0x11;
Bundle bundle = new Bundle();
bundle.clear();
try {
//连接服务器 并设置连接超时为5秒
socket = new Socket();
socket.connect(new InetSocketAddress("192.168.1.103", 8080), 15000); Looper.prepare();
Toast.makeText(LoginActivity.this,"ok",Toast.LENGTH_SHORT).show();
Looper.loop(); //获取输入输出流
OutputStream ou = socket.getOutputStream();
BufferedReader bff = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
//读取发来服务器信息
String line = null;
buffer="111";
while ((line = bff.readLine()) != null) {
buffer = line + buffer;
} //向服务器发送信息
ou.write("android 客户端".getBytes("gbk"));
ou.flush();
bundle.putString("msg", buffer.toString());
msg.setData(bundle);
//发送消息 修改UI线程中的组件
myHandler.sendMessage(msg);
//关闭各种输入输出流
bff.close();
ou.close();
socket.close();
} catch (SocketTimeoutException aa) {
//连接超时 在UI界面显示消息
bundle.putString("msg", "服务器连接失败!请检查网络是否打开");
msg.setData(bundle);
//发送消息 修改UI线程中的组件
myHandler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}按钮
bt.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Toast.makeText(LoginActivity.this,"test",Toast.LENGTH_SHORT).show();
// Thread thread=new Thread();
geted1 ="test";
outstr="client:"+geted1+"\n";
// txt1.append("client:"+geted1+"\n");
new MyThread(geted1).start();
}
});
定义线程
class MyThread extends Thread { public String txt1; public MyThread(String str) {
txt1 = str;
} @Override
public void run() {
//定义消息
Message msg = new Message();
msg.what = 0x11;
Bundle bundle = new Bundle();
bundle.clear();
try {
//连接服务器 并设置连接超时为5秒
socket = new Socket();
socket.connect(new InetSocketAddress("192.168.1.103", 8080), 15000); Looper.prepare();
Toast.makeText(LoginActivity.this,"ok",Toast.LENGTH_SHORT).show();
Looper.loop(); //获取输入输出流
OutputStream ou = socket.getOutputStream();
BufferedReader bff = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
//读取发来服务器信息
String line = null;
buffer="111";
while ((line = bff.readLine()) != null) {
buffer = line + buffer;
} //向服务器发送信息
ou.write("android 客户端".getBytes("gbk"));
ou.flush();
bundle.putString("msg", buffer.toString());
msg.setData(bundle);
//发送消息 修改UI线程中的组件
myHandler.sendMessage(msg);
//关闭各种输入输出流
bff.close();
ou.close();
socket.close();
} catch (SocketTimeoutException aa) {
//连接超时 在UI界面显示消息
bundle.putString("msg", "服务器连接失败!请检查网络是否打开");
msg.setData(bundle);
//发送消息 修改UI线程中的组件
myHandler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}按钮
bt.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
Toast.makeText(LoginActivity.this,"test",Toast.LENGTH_SHORT).show();
// Thread thread=new Thread();
geted1 ="test";
outstr="client:"+geted1+"\n";
// txt1.append("client:"+geted1+"\n");
new MyThread(geted1).start();
}
});
解决方案 »
- 新浪微博KEY 坐等高手!!!
- Eclipse怎么也安不了ADT,各位帮忙看看
- surfaceView在relativeLayout里绘制无法显示
- Listview中position混乱,求帮助。谢谢指导
- 才知道Android开版了,散分
- android 实现查看pdf
- cocos2dx 中的 python3.3.5d的环境变量
- 【新手】TimerTask的RUN方法中添加Toast导致程序崩溃
- 问一个 android eclipse 的logcat 打印的日志 一会就消失 很头疼
- 如何锁屏状态下,也能让光线传感器打开
- web加载引发的崩溃问题
- android studio写app项目,它是怎么分层的?
public String txt1;
public MyThread(String str) {
txt1 = str;
}
@Override
public void run() {
//定义消息
Message msg = new Message();
msg.what = 0x11;
Bundle bundle = new Bundle();
bundle.clear();
try {
//连接服务器 并设置连接超时为5秒
socket = new Socket();
socket.connect(new InetSocketAddress("192.168.1.103", 8080), 15000);
Activity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(LoginActivity.this,"ok",Toast.LENGTH_SHORT).show(); }
}); //获取输入输出流
OutputStream ou = socket.getOutputStream();
BufferedReader bff = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
//读取发来服务器信息
String line = null;
buffer="111";
while ((line = bff.readLine()) != null) {
buffer = line + buffer;
}
//向服务器发送信息
ou.write("android 客户端".getBytes("gbk"));
ou.flush();
bundle.putString("msg", buffer.toString());
msg.setData(bundle);
//发送消息 修改UI线程中的组件
myHandler.sendMessage(msg);
//关闭各种输入输出流
bff.close();
ou.close();
socket.close();
} catch (SocketTimeoutException aa) {
//连接超时 在UI界面显示消息
bundle.putString("msg", "服务器连接失败!请检查网络是否打开");
msg.setData(bundle);
//发送消息 修改UI线程中的组件
myHandler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}