Android实现socket简单通信

1.添加权限

<!--允许应用程序改变网络状态-->

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 

<!--允许应用程序改变WIFI连接状态-->

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 

<!--允许应用程序访问有关的网络信息-->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<!--允许应用程序访问WIFI网卡的网络信息--> 

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<!--允许应用程序完全使用网络-->

<uses-permission android:name="android.permission.INTERNET"/>


2.1 使用TCP协议通信

protected void connectServerWithTCPSocket() { 

Socket socket;  

try {

socket = new Socket("192.168.1.32"1989);  

// 创建一个InputStream用户读取要发送的文件。

InputStream inputStream = new FileInputStream("e://a.txt");  

// 获取Socket的OutputStream对象用于发送数据

OutputStream outputStream = socket.getOutputStream();

// 创建一个byte类型的buffer字节数组,用于存放读取的本地文件

byte buffer[] = new byte[4 * 1024];

int temp = 0;

// 循环读取文件

while ((temp = inputStream.read(buffer)) != -1) { 

// 把数据写入到OuputStream对象中 

outputStream.write(buffer, 0, temp);  

}

// 发送读取的数据到服务端 

outputStream.flush();  

}catch (UnknownHostException e) { 

e.printStackTrace(); 

}catch (IOException e) { 

 e.printStackTrace();  

}

}

2.2 服务器端简单实现

 public void ServerReceviedByTcp() {

// 声明一个ServerSocket对象

ServerSocket serverSocket = null;  

try {

// 创建一个ServerSocket对象,并让这个Socket在1989端口监听

serverSocket = new ServerSocket(1989);  

// 调用ServerSocket的accept()方法,接受客户端所发送的请求,如果客户端没有发送数据,那么该线程就停滞不继续

Socket socket = serverSocket.accept(); 

// 从Socket当中得到InputStream对象

InputStream inputStream = socket.getInputStream();

byte buffer[] = new byte[1024 * 4];

int temp = 0;

// 从InputStream当中读取客户端所发送的数据

while ((temp = inputStream.read(buffer)) != -1) { 

 System.out.println(new String(buffer, 0, temp)); 

}

serverSocket.close();  

}catch (IOException e) { 

 e.printStackTrace();  

}

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值