Android与服务器通信之socket通信

最近接触的一个案例需要用到通讯方式,首先想到的是socket通讯,–代码比较简单;然后就去网上查代码,找了很久发现一个大牛写的很详细>>> 跳转

一:android:接收以及发送消息

1,首先实例化socketsocket = new Socket(服务器IP, 服务器端口号); 两个参数,参1为String类型,参2为Int类型
2,接收服务器信息
BufferedReader in = new BufferedReader(   new InputStreamReader(socket.getInputStream()));   
String msg = in.readLine();  
“ok,其中msg就是我们在服务器上读到的数据”
3.向服务器发送信息
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
    bw.write("111");//111为发送的内容
    bw.flush();//提交发送信息请求
    bw.close();//关闭

二:服务器端:接收与发送给android消息

ServerSocket ss=new ServerSocket(port);
while(true){
//服务器端一直在运行等待客户端发送socket,对于一个新的socket,服务器则建立一个新的socket.
Socket s=ss.accept();
1.读消息:与客户端完全相同
// 接受客户端信息  
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));                         
2.发消息:与客户端程序完全相同
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
bw.write("111");//111为发送的内容
bw.flush();//提交发送信息请求
}

三:网络权限,既然是涉及到通讯,必不可少的就是网络访问权限

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

四:关于PrintWriter与BufferedWriter的区别

涉及到的一个知识点
1. PrintWriter的print、println方法可以接受任意类型的参数,而BufferedWriter的write方法只能接受字符、字符数组和字符串;
2. PrintWriter的println方法自动添加换行,BufferedWriter需要显示调用newLine方法;
3. PrintWriter的方法不会抛异常,若关心异常,需要调用checkError方法看是否有异常发生
4. PrintWriter构造方法可指定参数,实现自动刷新缓存(autoflush);
5. PrintWriter的构造方法更广。

五:其它知识点
贴一跳转>>>这个帖子是讲android模拟器当客户端,电脑当服务器使用的,经过测试没有问题。注意IP一定为android的固定通信ip–10.0.2.2.
贴二跳转>>>也可以利用android客户端当服务器,pc机器当客户端通信,也可以通过多个模拟器之间进行通信,但需要窗口重定向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值