搜索
简帛阁>技术文章>Android学习笔记17——TCP/IP socket编程

Android学习笔记17——TCP/IP socket编程

先来介绍下网络协议: 
    TCP/IP 
        Transmission Control Protocol 传输控制协议 
        Internet Protocol 互联网协议 
    UDP 
        User Datagram Protocol 用户数据协议 

连接协议: 
    分为: 
    面向连接协议: Connection Oriented Protocol 
    非连接协议: Connectionless Protocol 

    1).面向连接协议是指两台电脑在传输数据前,先会建立一个专属的连接。就如电信局的交换机会为打电话双方提供专属连接一样。 
    Internet上的面向连接协议就是 TCP/IP 
    特点:确认回应;分组序号;流量控制。 
    TCP/IP属于可靠性传输,适合不容许有传输错误的网络程序设计使用 

    2).非连接协议:无专属连接,无分组,容错,距离短,可同时对多台电脑进行数据传输 
    Internet上的非连接协议就是 UDP 

    TCP在网络通信上有极强的生命力,例如远程连接( Telnet )和文件传输( FTP )都需要不定长度的数据被可靠地传输。相比之下 UDP 操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中 client/server 应用程序。 


Socket 是程序与网络间的一种接口,大部分网络应用程序都是点对点的,所谓点就是服务器端和客户端所执行的程序。 Socket 是用来接收和传送分组的一个端点。 

java的 Socket 编程要用到 java.net 包,最常用的是 net 包下的 6 个类: InetAddress( 互联网协议  (IP)  地址 ) 类, Socket( 套接字 ) 类, ServerSocket( 套接字服务器 ) 类, DatagramSocket( 发送和接收数据报包的套接字 )  类, DatagramPacket( 数据报包 ) 类, MulticastSocket( 多播数据报套接字类用于发送和接收  IP  多播包 ) 类,其中 InetAddress 、 Socket 、 ServerSocket 类是属于 TCP 面向连接协议, DatagramSocket 、  DatagramPacket 和 MulticastSocket 类则属于 UDP 非连接协议的传送类。 

——From: http://cuishen.iteye.com/blog/242842

 

TCP 通信模型

Socket模型

 

示例代码:

UdpServer.java

UdpClient.java

 

TcpServer.java

TcpClient.java


先来介绍下网络协议:TCP/IPTransmissionControlProtocol传输控制协议InternetProtocol互联网协议UDPUserDatagramProtocol用户数据协议
1章理解网络编程和套接字11理解网络编程和套接字111网络编程和套接字概要网络编程:编写程序使两台联网的计算机相互交换数据。套接字(socket):网络数据传输时用的软件设备。网络编程又称套接字编程
TCP/IP协议是传输层的一个面向连接的安全可靠的一个传输协议。1)TCP报文段:TCP报文段首部的前20个字节是固定的,后面有4n字节是根据需要而增加的。因此TCP首部的最小长度是20字节。2)T
转:http://blogcsdnnet/goodboy1881/article/details/758034TCP/IP详解学习笔记(1)基本概念为什么会有TCP/IP协议在世界上各地,各种各样的电
一、概要本篇文章主要讲解基于net中tcp/ip网络通信编程。在自我进步的过程中记录这些内容,方便自己记忆的同时也希望可以帮助到大家。技术的进步源自于分享和不断的自我突破。技术交流QQ群:580749
系列是针对《TCP/IP详解》的笔记总结,包含各章节的主要内容。有助于帮助你快速了解并掌握TCP/IP协议的相关内容。目录1、TCP/IP各层之间的概述2、协议封装3、协议拆封4、数据传输1、TCP
本文将首先介绍TCP/IP四层模型,及其和OSI参考模型的对应关系。接着,介绍TCP/IP四层模型中设计到的主要协议。在TCP/IP协议中,将OSI模型的七层架构简化成了四层,如下图所示。在上图中,
TCP/IP网络模型网络协议通常由上到下,分为5层,分别是:应用层、传输层、网络层、数据链路层和物理层。应用层:最上层的,电脑或手机使用的应用软件都在应用层实现。其只关注数据如何传输。类似于,我们寄快
第一部分开始网络编程Linux编译基本命令gcchellocohelloo是用来指定可执行文件名的可选参数Linux的文件操作在Linux世界里,socket也没认为是文件的一种,因此在数据传输过程
TCP/IP协议DoD模型应用层Telent、FTP、SMTP、DNS、HTTP以及其他应用协议传输层TCP、UDP网络层IPv4、ARP、RARP、ICMP网络接口各种通信网络接口(以太网等物理网络