Android客户端与服务器通信
- Android socket编程
服务端:
1、指定端口对serversocket进行事例化
2、调用ServerSocket的accepet()方法防止在链接期间造成阻塞
3、获取底层Socket流对并对其进行读写操作
4、将数据封装成流
5、对Socket进行读写
6、关闭所有打开的输入输出流
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.ServerSocket;
import java.net.Socket;
public class Server implements Runnable{pubulic void run(){try{//创建ServerSocket 在端口66788 监听客户请求ServerSocket serverSocket = new ServerSocket(66788);while(ture){//接收客户端的请求Socket client = serverSocket.accept();System.out.println("already accept");try{BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));String str = in.readLine();System.out.println("read:" + str);//向服务器发送消息PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),ture);out.println("serever message");//关闭流out.close();in.close();}catch (Exception e){System.out.println(e.getMessage());e.printStackTrace();}finally{//关闭client.close();System.out.println("close");}}}catch (Exception e){System.out.println(e.getMessage());}}//main函数,开启服务器public static void main(String a[]){Thread desktopServerThread = new Thread(new Server());desktopServerThread.start();}
}
- 客户端
1、通过IP地址和端口实例化请求连接服务器
2、获取Socket上的流以进行读写
3、把流包进BufferedReader / PrintWriter 的事例;
4、对Socket进行读写
5、关闭打开流
public class Activity01 extends Activity{private final String DEBUG_TAG = "Activity01";private TextView mTextView = null;private EditText mEditText = null;private Button mButton = null;/**Called when the activity is first created.**/@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContantView(R.layout.main);mButton = (Button)findViewById(R.id.Button01);mTextView = (TextView)findViewById(R.id.TextView01);mEditText = (EditText)findViewById(R.id.EditText01);//登陆mButton.setOnClickListener(new onClickListener()){public void onClick(View v){Socket socket null;String message = mEditText.getText().toString() + "\r\n";try{//创建Socketsocket = new Socket("192.168.1.6",66788);//向服务器发送消息PrintWriter out = new PrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),ture);out,println(message);//接收来自服务器的消息BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));String msg = br.readLine();if(msg != null){mTextView.setText(msg);else{mTextView.setText("数据错误");}//关闭流out.close();br.close();//关闭Socketsocket.close();}catch (Exception e){//Log.e(DEBUG_TAG,e.toString());}}}}}
}
Android客户端与服务器通信相关推荐
- Android服务的通信方式,android客户端与服务器通信的HTTP通信
如下,给出HTTP通信的主要代码: 一.post方式通信 主要分为以下几步: 1.新建Httppost对象: 2.为Httppost设置参数和编码格式: 3.新建HttpClient对象: 4.新建H ...
- Android客户端与服务器用Socket进行通信
Android客户端与服务器用Socket进行通信(简单,基础) #####哈哈哈,很久没有好好学习了,今天写一个关于通信的,我也是刚刚学到,代码还不完善,,,,有问题请大家指出 #Android客户 ...
- Android客户端与服务器交互方式-小结
最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json.要在Android手机客户端与pc服务器交互,需要 ...
- Android 客户端与服务器交互方式
突然想到一个问题就是Android客户端与服务器交互有几种方式,因为在脑袋里想当然的就是webservices和json.要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台.传 ...
- 基于TCP/IP协议的Java服务端与Android客户端的Socket通信及数据交互
基于TCP/IP协议的Java服务端与Android客户端的Socket通信及数据交互 一.前言 1.Java服务端程序代码的项目名为TcpSocketServerOfJava,包名为com.exam ...
- Android客户端与服务器连接
一.实验名称 Android客户端与服务器连接. 二.实验背景 2.1需求分析 1.服务端使用JSON解析客户端的请求数据 2.客户端通过HttpClient对象访问服务器,向服务器发送http请求. ...
- android 访问服务器josn文件,Android客户端对服务器回来的json文件进行解析
Android客户端对服务器返回的json文件进行解析 和解析XML的方式大同小异,只有解析方式存在区别: /** * 解析服务器返回来的json数据 * @param content * @retu ...
- Android 架构之路 (1)-- Android 客户端与服务器的数据交互总结
前言: 本文总结了 Android 客户端与服务器进行交互时,采用RESTful API +Json的交互方式,针对不同的数据形式以及不同的解析方法,如有不足之处,欢迎指正. 文章目录 1. Andr ...
- Websocket(二)-客户端与服务器通信
Websocket(二)-客户端与服务器通信 服务端 客户端测试 const WebSocket = require('ws'); const Server = WebSocket.Server; c ...
- 输入URL,客户端到服务器通信的过程
输入URL,客户端到服务器通信全过程 按五层网络协议进行理解: 在主机上: 1.第五层--应用层:DNS解析 2.第四层--传输层:TCP三次握手.四次挥手 3.第三层--网络层:IP层 4.第2.5 ...
最新文章
- Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法
- NHibernate.Validator 实体验证框架
- tornado数据库迁移
- 团队作业_1_博客1(分工理解)
- 对DataGridView中的DataGridViewComboBoxColumn有了一点点体会
- k8s资源对象及API群组
- Sibelius 8 for Mac(西贝柳斯打谱软件)中文破解版
- 数字转换为汉语中人民币的大写
- 斐波那契数列(费氏数列)
- Spring Boot + WebSocket实现网页在线实时聊天
- @interface List
- tcl网络电视android无法启动,tcl智能电视系统升级和刷机常见问题解答
- Windows引导过程(BIOS,UEFI)
- PS第一课--基本操作
- cadence 通孔焊盘_【精品】PCB设计软件allegro不规则带通孔焊盘的制作
- Python中break语句和continue语句的用法
- JVM/JDK/JRE/IDE—区别
- Hutool - 信息脱敏工具 - DesensitizedUtil
- 苹果新系统耗电过快怎么解决(解决方法)
- Qt for MCUs 1.9正式发布
热门文章
- android手机分区调整大小写,如何使用PQMagic调整磁盘分区容量大小
- jzoj1212 重建道路
- Java常用jar包用途
- catalina java opts_tomcat catalina.sh JAVA_OPTS参数说明与配置
- 基于R语言的分位数回归(quantile regression)
- 如何选择关键词以及关键词分析优化
- 圣何塞州立大学计算机工程排名,2021年圣何塞州立大学排名U.S.News世界大学排名第1467...
- SEO项目管理,该问自己的几个问题?
- 计算机无法进行磁盘,电脑硬盘无法分区怎么办
- MATLAB-SIMULINK-二极管搭建整流电路(1)