• 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客户端与服务器通信相关推荐

  1. Android服务的通信方式,android客户端与服务器通信的HTTP通信

    如下,给出HTTP通信的主要代码: 一.post方式通信 主要分为以下几步: 1.新建Httppost对象: 2.为Httppost设置参数和编码格式: 3.新建HttpClient对象: 4.新建H ...

  2. Android客户端与服务器用Socket进行通信

    Android客户端与服务器用Socket进行通信(简单,基础) #####哈哈哈,很久没有好好学习了,今天写一个关于通信的,我也是刚刚学到,代码还不完善,,,,有问题请大家指出 #Android客户 ...

  3. Android客户端与服务器交互方式-小结

    最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json.要在Android手机客户端与pc服务器交互,需要 ...

  4. Android 客户端与服务器交互方式

    突然想到一个问题就是Android客户端与服务器交互有几种方式,因为在脑袋里想当然的就是webservices和json.要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台.传 ...

  5. 基于TCP/IP协议的Java服务端与Android客户端的Socket通信及数据交互

    基于TCP/IP协议的Java服务端与Android客户端的Socket通信及数据交互 一.前言 1.Java服务端程序代码的项目名为TcpSocketServerOfJava,包名为com.exam ...

  6. Android客户端与服务器连接

    一.实验名称 Android客户端与服务器连接. 二.实验背景 2.1需求分析 1.服务端使用JSON解析客户端的请求数据 2.客户端通过HttpClient对象访问服务器,向服务器发送http请求. ...

  7. android 访问服务器josn文件,Android客户端对服务器回来的json文件进行解析

    Android客户端对服务器返回的json文件进行解析 和解析XML的方式大同小异,只有解析方式存在区别: /** * 解析服务器返回来的json数据 * @param content * @retu ...

  8. Android 架构之路 (1)-- Android 客户端与服务器的数据交互总结

    前言: 本文总结了 Android 客户端与服务器进行交互时,采用RESTful API +Json的交互方式,针对不同的数据形式以及不同的解析方法,如有不足之处,欢迎指正. 文章目录 1. Andr ...

  9. Websocket(二)-客户端与服务器通信

    Websocket(二)-客户端与服务器通信 服务端 客户端测试 const WebSocket = require('ws'); const Server = WebSocket.Server; c ...

  10. 输入URL,客户端到服务器通信的过程

    输入URL,客户端到服务器通信全过程 按五层网络协议进行理解: 在主机上: 1.第五层--应用层:DNS解析 2.第四层--传输层:TCP三次握手.四次挥手 3.第三层--网络层:IP层 4.第2.5 ...

最新文章

  1. Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法
  2. NHibernate.Validator 实体验证框架
  3. tornado数据库迁移
  4. 团队作业_1_博客1(分工理解)
  5. 对DataGridView中的DataGridViewComboBoxColumn有了一点点体会
  6. k8s资源对象及API群组
  7. Sibelius 8 for Mac(西贝柳斯打谱软件)中文破解版
  8. 数字转换为汉语中人民币的大写
  9. 斐波那契数列(费氏数列)
  10. Spring Boot + WebSocket实现网页在线实时聊天
  11. @interface List
  12. tcl网络电视android无法启动,tcl智能电视系统升级和刷机常见问题解答
  13. Windows引导过程(BIOS,UEFI)
  14. PS第一课--基本操作
  15. cadence 通孔焊盘_【精品】PCB设计软件allegro不规则带通孔焊盘的制作
  16. Python中break语句和continue语句的用法
  17. JVM/JDK/JRE/IDE—区别
  18. Hutool - 信息脱敏工具 - DesensitizedUtil
  19. 苹果新系统耗电过快怎么解决(解决方法)
  20. Qt for MCUs 1.9正式发布

热门文章

  1. android手机分区调整大小写,如何使用PQMagic调整磁盘分区容量大小
  2. jzoj1212 重建道路
  3. Java常用jar包用途
  4. catalina java opts_tomcat catalina.sh JAVA_OPTS参数说明与配置
  5. 基于R语言的分位数回归(quantile regression)
  6. 如何选择关键词以及关键词分析优化
  7. 圣何塞州立大学计算机工程排名,2021年圣何塞州立大学排名U.S.News世界大学排名第1467...
  8. SEO项目管理,该问自己的几个问题?
  9. 计算机无法进行磁盘,电脑硬盘无法分区怎么办
  10. MATLAB-SIMULINK-二极管搭建整流电路(1)