android socket 通信(1)
2016-05-24 16:36
423 查看
1.android 3.0 以后的网络操作要放在单独放在线程里。
2.添加权限
<!-- 允许应用程序打开Socket -->
<uses-permission android:name="android.permission.INTERNET" />
3.服务器线程:
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import android.util.Log;
public class ServerThread implements Runnable {
ServerSocket serverSocket = null;
@Override
public void run() {
// TODO Auto-generated method stub
try {
serverSocket = new ServerSocket(7777);
while (true) {
Log.d("Comtest3", "wait for data...");
Socket socket = serverSocket.accept();
Log.d("Comtest3", "there is data...");
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
// 写字符串
writer.write("服务器的数据已经接受到!");
writer.flush();
writer.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
Log.d("Comtest3", "异常");
e.printStackTrace();
}
}
}客户端的线程:
首先服务器ServerSocket启动,调用accept()方法等待客户端Socket发起连接;然后服务器用BufferedWriter向ServerSocket.getOutputStream()写字符串,发送到客户端;客户端用BufferedReader读getInputStream()的字符串输出到日志
2.添加权限
<!-- 允许应用程序打开Socket -->
<uses-permission android:name="android.permission.INTERNET" />
3.服务器线程:
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import android.util.Log;
public class ServerThread implements Runnable {
ServerSocket serverSocket = null;
@Override
public void run() {
// TODO Auto-generated method stub
try {
serverSocket = new ServerSocket(7777);
while (true) {
Log.d("Comtest3", "wait for data...");
Socket socket = serverSocket.accept();
Log.d("Comtest3", "there is data...");
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
// 写字符串
writer.write("服务器的数据已经接受到!");
writer.flush();
writer.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
Log.d("Comtest3", "异常");
e.printStackTrace();
}
}
}客户端的线程:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket; import java.net.UnknownHostException; import android.util.Log; public class ClientThread implements Runnable{ Socket socket = null; private String line; @Override public void run() { // TODO Auto-generated method stub try { socket = new Socket("192.168.43.71", 7777); BufferedReader br = new BufferedReader( new InputStreamReader(socket.getInputStream())); line = br.readLine(); br.close(); Log.i("comtest3", line); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }4.分析:
首先服务器ServerSocket启动,调用accept()方法等待客户端Socket发起连接;然后服务器用BufferedWriter向ServerSocket.getOutputStream()写字符串,发送到客户端;客户端用BufferedReader读getInputStream()的字符串输出到日志
相关文章推荐
- Android 蓝牙设备通讯的开发(配对/连接/传输数据)
- 收集android上开源的酷炫的交互动画和视觉效果
- Android使用ethtool工具查询/设置以太网网卡状态
- android开发过程中异常和解决办法
- Android 拍照、选择图片并裁剪
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (上)
- Android 获取Mac地址和IP地址
- 关于Android屏幕适配应该知道的一些知识
- GreenDao由浅入深(一) -- 在项目中配置及简单的操作
- repo 下载Android源码(国内镜像)
- android:layout_gravity和android:gravity的区别
- Activity的生命周期方法
- android工作中遇到的问题一二
- Android 使用Instrumentation进行自动化测试
- Android操作Exif-ExifInterface全解析
- Android的四大组件介绍
- android学习路线:如何成长为高级工程师
- Android:MVP模式
- Android6.0文件变动
- Android检测内存泄漏之leakcanary