Socket是编写用TCP/IP协议进行通信的程序的API接口,TCP/IP协议是互联网上使用的通信协议,不局限于HTTP的一问一答方式,可以随发随收。

JavaSE平台提供了Socket编程接口,Android上也能使用。

TCP/IP通信中包括两方:每一方都有IP地址和端口号。

IP地址用于区分设备,比如计算机网卡、手机通信模块等,每个通信设备有一个IP地址。现在互联网上IP地址格式正由IPv4向IPv6过渡,一个IPv4地址用4个字节表示,一个IPv6地址用16个字节表示,所以IPv6的地址数远远多于IPv4,解决了地址不够用的问题。端口号是一个整数,区分同一设备上的不同程序。比如,一台计算机可以使用文件传输服务的同时访问网页,也就是同时和多台计算机通信,那么不同的通信程序就用不同的端口号区分。

Socket支持TCP和UDP两种通信方式。

TCP是一种有连结的数据传输协议,传输数据前要先建立可靠的连结。类似于打电话,要先拨通后才能通话。TCP的数据传输是可靠的,如果传输不到接收方,发送方能够检测到。数据传输也是有序的,先发送的数据肯定先到达接收方。因为要建立连结并且保证数据传输的有效性和可靠性,所以耗费资源比较多。

UDP是一种无连结的数据传输协议,不需要建立连结就能传输数据。类似于发邮件或短信,不用管对方是什么状态,直接发就行。UDP的数据传输是不可靠的,数据包一旦发出,就和发送方没有关系了,能否到达接收方不可知。数据传输顺序也是不一定的,先发送的数据包可能后到达接收方。因为不需要建立连接,也不需要保证数据传输的有效性和可靠性,所以耗费资源比较少。

两种通信方式各有特点,所以分别适合不同用途。TCP方式用于对数据可靠性要求较高的情况,如浏览器使用的HTTP协议、文件下载使用的FTP协议等。UDP用于对速度和节省资源要求较高的情况,如多人游戏、QQ等。

在具体的处理上:TCP协议可以在一台计算机的一个端口上可以建立多个连结,而且需要为每个连结建立一个接收数据的线程。UDP协议没有连结的概念,一台计算机的一个端口上只需建立一个接收数据的线程就可接收所有数据。

Android网络功能开发(5)——Socket编程接口相关推荐

  1. Android网络功能开发(4)——文件下载和上传

    本篇介绍使用HTTP协议实现文件下载和上传.在客户端和服务器的通信过程中,可能有些多媒体或数据文件需要下载或上传,可以通过HTTP协议实现. 首先看使用HTTP协议下载文件的原理:客户端发送一个HTT ...

  2. android支付功能开发,对接支付宝支付接口开发详细步骤

    对接支付宝支付接口,官方文档已经写的很清楚了,但是也有很多像我一样的小白,第一次对接支付宝支付接口,会有些迷茫,所以我在此写下这篇文章,给我和我一样的同学,一点思路吧. 第一步:(先要在支付宝进行操做 ...

  3. 【Linux】详解socket编程接口

    socket编程接口详解 1. socket常见API 2. IPv4协议的地址信息结构:sockaddr_in结构体 2.1 sockaddr结构体 2.2 in_addr结构体 2.3 socka ...

  4. socket编程接口

     网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP的封 ...

  5. 朱有鹏 socket编程接口介绍(3)

    朱有鹏 socket编程接口介绍(3) 建立连接 socket(man 2 socket) socket()函数类似于open()函数,用来打开一个网络连接,如果成功则返回一个网络文件描述符(int类 ...

  6. 码农翻身讲网络3:从Socket编程到HTTP服务器

    小白科普:从输入网址到最后浏览器呈现页面内容,中间发生了什么?(HTTP请求) 原创: 老刘 码农翻身 1月2日 1前言 这篇文章是应网友之邀所写,主要描述一下我们访问网站时, 从输入网址到最后浏览器 ...

  7. Android网络:开发浏览器(五)——功能完善之保存图片实现

    最近几天开学,所以没有更新博客.今天开始更新.最近我打算每天抽出一些事件看点Thinkin Java这本书,仔细研究下java,当然也会出这个博客关于Think in java系列的博客,大家可以一起 ...

  8. 指南-Luat二次开发教程-功能开发教程-SOCKET

    目录 socket 简介 API说明 实现流程 同步与异步 示例 开机与连接网络 连接服务器 socket发送与接收消息 常见问题 连接服务器失败 最多同时支持多少个连接 socket异常的情况排查 ...

  9. 指南-Luat二次开发教程指南-功能开发教程-socket

    目录 socket 简介 API说明 实现流程 同步与异步 示例 开机与连接网络 连接服务器 socket发送与接收消息 常见问题 连接服务器失败 最多同时支持多少个连接 socket异常的情况排查 ...

最新文章

  1. Elasticsearch的或且非及其组合
  2. 干货 | 携程异地多活-MySQL实时双向(多向)复制实践
  3. FFmpeg windows下载安装
  4. x86从实模式到保护模式实验说明
  5. windows安装HTK3.4.1
  6. UIPickerView用法(左右比例,整体大小,字体大小)
  7. Makefile.am编写规则
  8. 批判性思维--如何高效学习
  9. 博世中国的战略与战术,如何应对复杂多变的中国市场需求
  10. unity学习笔记(二)—— 制作第一个小游戏
  11. Cura工程环境配置教程
  12. 小米手机电池耗尽后进入fastboot死循环的退出方法
  13. matlab计算叶子的面积,基于MATLAB进行树叶面积测量实验报告
  14. paper 94:视觉领域博客资源1之中国部分
  15. 0.96OLED图标取模,包括信号图标,蓝牙图标,闹钟,电池
  16. 3dmax一键展uv_3dmax插件下载 3DSMAX展UV贴图插件 Unwrap Pro V1.02 For 2008 – 2018
  17. Python 给定初值,二阶微分方程使用 Runge-kutta 方法
  18. 网络运维工具--shell批量下发
  19. 详细解析汇兑损益结转
  20. 什么是原生IP和广播IP,网站建设是共享IP还是独立IP好?

热门文章

  1. 试用python库meteva(气象行业)
  2. RISC-V Debug Introduction
  3. webstorm常用插件 最后一个最好
  4. 网络与路由器故障诊断基础知识
  5. C/C++基础查漏补缺(一)----------寒假学习笔记(一)
  6. 初学者完成HBuilder X网站制作
  7. 树莓派获取LAN ip地址并发送到微信
  8. Python做游戏很难吗—来看看我做的多有趣
  9. TensorFlow 、Caffe等9大人工智能框架对比介绍
  10. 服务器被流量攻击怎么办