Android客户端通过TCP向网络发送信息 本帖最后由 AmberCai 于 2014-06-16 10:19:38 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 send.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { // 客户端启动ClientThread线程不断读取来自服务器的数据 new Thread(new ClientThread(handler, input.getText().toString() )).start(); // 清空input文本框 input.setText(""); } catch (Exception e) { e.printStackTrace(); } } });ClientThread.class public ClientThread(Handler handler, String text) throws IOException { this.text =text; this.handler = handler; br = new BufferedReader(new InputStreamReader(s.getInputStream())); } public void run() { try { s = new Socket("192.168.1.111", 30002); os = s.getOutputStream(); os.write((text+ "\r\n") .getBytes("utf-8")); 您好!我刚刚试了,还是报了“bad request for cursor”的错。而且如果按以上修改,我有两个小疑问:一个是,在按下send按钮后才进行socket连接,这样会不会影响整体性能?二是,如果我有多个按钮,每个按钮都要发送或者监听不同的事件且均与服务器有关,这样的话是不是得在每个按钮中都开启一个线程呢?有没有更好的解决办法?以上是我个人浅显的思考,不对之处,敬请包容! 你的包名叫org.crazyit.net,你跟着360报出来的error叫什么劲,com.qihoo,这是奇虎360产品报出来的,跟你这没关系,就算不运行你的程序都会报的东西你这是代码写错了,os这个变量从头到尾没有赋值过 是说怎么不运行也报错呢os = s.getOutputStream(); os.write((input.getText().toString() + "\r\n").getBytes("utf-8"));这些都不算给os赋值吗? 是说怎么不运行也报错呢os = s.getOutputStream(); os.write((input.getText().toString() + "\r\n").getBytes("utf-8"));这些都不算给os赋值吗?你有两个os,你赋值的这个os和你用的os都不是同一个os,仔细检查代码 是说怎么不运行也报错呢os = s.getOutputStream(); os.write((input.getText().toString() + "\r\n").getBytes("utf-8"));这些都不算给os赋值吗?你有两个os,你赋值的这个os和你用的os都不是同一个os,仔细检查代码那改成一楼说的那样,应该是赋值的os与用的os统一了吧?为啥还不行呢? 是说怎么不运行也报错呢os = s.getOutputStream(); os.write((input.getText().toString() + "\r\n").getBytes("utf-8"));这些都不算给os赋值吗?你有两个os,你赋值的这个os和你用的os都不是同一个os,仔细检查代码那改成一楼说的那样,应该是赋值的os与用的os统一了吧?为啥还不行呢?懒得看代码,什么叫“应该统一了”,这种简单的赋值问题你都搞不定么 我用的是xamarin进行通信 文章地址 mBase.getSharedPreferences(name, mode)到底调用实体在哪? 关于@id和@+id的区别? 电源锁的管理 请问这句代码的意思功能 求获得外置的SDcard的路径的方法 请熟悉android的朋友看看这个问题 ViewPager里面不能显示listView消息 [help]Ubuntu12.04编译Android4.0.1源码出现下面的错误 求助:有没有谁做过android的上拉出现图片的功能 android 集成了facebook之后再有app的情况下不能登录 Notification.Builder的build方法报错 想学习一下安卓应用开发,请教
@Override
public void onClick(View v) {
try {
// 客户端启动ClientThread线程不断读取来自服务器的数据
new Thread(new ClientThread(handler, input.getText().toString() )).start();
// 清空input文本框
input.setText("");
} catch (Exception e) {
e.printStackTrace();
}
}
});
ClientThread.class
public ClientThread(Handler handler, String text) throws IOException {
this.text =text;
this.handler = handler;
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
}
public void run() {
try {
s = new Socket("192.168.1.111", 30002);
os = s.getOutputStream();
os.write((text+ "\r\n")
.getBytes("utf-8"));
您好!我刚刚试了,还是报了“bad request for cursor”的错。
而且如果按以上修改,我有两个小疑问:一个是,在按下send按钮后才进行socket连接,这样会不会影响整体性能?
二是,如果我有多个按钮,每个按钮都要发送或者监听不同的事件且均与服务器有关,这样的话是不是得在每个按钮中都开启一个线程呢?有没有更好的解决办法?以上是我个人浅显的思考,不对之处,敬请包容!
是说怎么不运行也报错呢os = s.getOutputStream(); os.write((input.getText().toString() + "\r\n").getBytes("utf-8"));这些都不算给os赋值吗?
是说怎么不运行也报错呢os = s.getOutputStream(); os.write((input.getText().toString() + "\r\n").getBytes("utf-8"));这些都不算给os赋值吗?你有两个os,你赋值的这个os和你用的os都不是同一个os,仔细检查代码
是说怎么不运行也报错呢os = s.getOutputStream(); os.write((input.getText().toString() + "\r\n").getBytes("utf-8"));这些都不算给os赋值吗?你有两个os,你赋值的这个os和你用的os都不是同一个os,仔细检查代码那改成一楼说的那样,应该是赋值的os与用的os统一了吧?为啥还不行呢?
是说怎么不运行也报错呢os = s.getOutputStream(); os.write((input.getText().toString() + "\r\n").getBytes("utf-8"));这些都不算给os赋值吗?你有两个os,你赋值的这个os和你用的os都不是同一个os,仔细检查代码那改成一楼说的那样,应该是赋值的os与用的os统一了吧?为啥还不行呢?懒得看代码,什么叫“应该统一了”,这种简单的赋值问题你都搞不定么