java android Socket通信 发送以及接受
来源:互联网 发布:中老年春秋女上衣淘宝 编辑:程序博客网 时间:2024/05/20 03:04
// 变量
// 线程池private ExecutorService mThreadPool;// 为了方便展示,此处直接采用线程池进行线程管理,而没有一个个开线程
public static Socket socket;// Socket变量
/** * 发送消息到服务器 变量 */// 输出流对象public static OutputStream outputStream;/** * 接收服务器消息 变量 */public static InputStream is;// 输入流对象// 输入流读取器对象InputStreamReader isr;//接受到的数据public String response
一、登录连接
// 利用线程池直接开启一个线程 & 执行该线程mThreadPool.execute(new Runnable() { @Override public void run() { try { // 创建Socket对象 & 指定服务端的IP 及 端口号 socket = new Socket(IP, POST); // 判断客户端和服务器是否连接成功 booleam content = socket.isConnected(); // 步骤4:通知主线程,将接收的消息显示到界面 Message msg = Message.obtain(); msg.what = 0; if ( content) { msg.obj = "连接成功"; } else { msg.obj = "连接失败"; } mHandler.sendMessage(msg); } catch (IOException e) { e.printStackTrace(); } }});//用于UI操作二、发送指令private void initHandler() { // 实例化主线程,用于更新接收过来的消息 mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: if (msg.obj.toString().equals("连接成功")) { Toast.makeText(LoginFragment.this.getContext(), "登录成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(LoginFragment.this.getContext(), "连接失败!", Toast.LENGTH_SHORT).show(); } break; default: break; } } };}
mThreadPool.execute(new Runnable() { @Override public void run() { try { // 步骤1:从Socket 获得输出流对象OutputStream // 该对象作用:发送数据 outputStream = application.socket.getOutputStream(); // 步骤2:写入需要发送的数据到输出流对象中 outputStream.write((Constant.upVoltage + "\n").getBytes("utf-8")); // 特别注意:数据的结尾加上换行符才可让服务器端的readline()停止阻塞 // 步骤3:发送数据到服务端 outputStream.flush(); } catch (IOException e) { e.printStackTrace(); } }});
三、接受信息
mThreadPool.execute(new Runnable() { @Override public void run() { while (true) { try { // 步骤1:创建输入流对象InputStream is = application.socket.getInputStream(); // 步骤2:创建输入流读取器对象 并传入输入流对象 // 该对象作用:获取服务器返回的数据// isr = new InputStreamReader( is); //readlin()服务端发送的数据最后需要有空格或者回车否则接受不到// br = new BufferedReader(isr);//// 步骤3:通过输入流读取器对象 接收服务器发送过来的数据// response = br.readLine();//字节接受数据 byte[] buffer = new byte[1000]; // 转换为字符串 int length = is.read(buffer); response = new String(buffer, 0, length); // 步骤4:通知主线程,将接收的消息显示到界面 Message msg = Message.obtain(); msg.what = 3; msg.obj = response; mHandler.sendMessage(msg); } catch (IOException e) { e.printStackTrace(); } } }// } });
阅读全文
0 0
- java android Socket通信 发送以及接受
- Socket发送和接受
- java进行网络编程 Socket 发送和接受端
- Socket通信,Android,java
- socket发送和接受数据
- socket通信里用得比较多的是发送和接受函数
- socket通信阻塞模式下,设置发送和接受函数超时
- android socket通信java+c++
- android java socket通信乱码
- SOCKET UDP 发送和接受示例代码
- C#使用socket发送和接受数据
- 关于通过Socket发送接受方式
- android短信发送和接受
- java TCP/IP Socket编程-----发送和接受数据-----笔记7
- java TCP/IP Socket编程-----发送和接受数据---投票例子--笔记7
- Java socket 客户端接受数据
- 通信设计:利用java的socket发送json
- android java Socket多文件发送
- E盘操作无法完成,因为磁盘管理控制台视图不是最新状态,要怎么恢复资料
- 大数据_各章概述
- JSP中输入超长网址不换行
- 树状数组
- 产品经理不再纸上谈兵——APP表单设计技巧
- java android Socket通信 发送以及接受
- C#汉字转拼音类
- RGB与HSV等的转换
- 阻止 android webview 中的链接跳出APP(即跳转到系统浏览器)
- 开发中使用临时表的应用场景以及注意事项
- Spring Boot环境搭建
- Mac OX 下方便的微信语音,图片,视频等导出方式
- Visual Studio 2010基于OpenCV3.0.0的本质矩阵估计
- 安装sqliteODBC报错