JavaSE入门学习47:Socket网络通信编程

Posted life is wonderful

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE入门学习47:Socket网络通信编程相关的知识,希望对你有一定的参考价值。

       今天既然我们学习Java的Socket网络通信编程,那么在我们的现实生活中那些是Socket编程的应用呢?可以想象

我们最常用的聊天工具软件QQ就是,当然MSN也是啦。

       一网络基础知识

       两台计算机通过网络进行通信的必要条件:

      1)IP地址

      2)网络协议

      3)端口号

      两台计算机网络通信示意图:


      (1)TCP/IP协议

      1)TCP/IP协议是目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合,也称

TCP/IP协议族或TCP/IP协议栈。

      2)TCP:Transmission Control Protocol(传输控制协议)。

      3)IP:Internet Protocol(互联网协议)

      (2)TCP/IP模型

      TCP/IP模型示意图:


      1)应用层(最高层,HTTP协议表示超文本传输协议,FTP协议表示文件传输协议,SMTP协议表示简单邮件传送协

议,Telnet协议表示远程登录服务)。

      2)传输层(TCP/IP协议),TCP和UDP属于传输层。这就是我们程序员编程的一层。

      3)网络层IP协议是属于网络层

      4)数据链路层

      5)物理层(网线,双绞线,网卡)

      (3)IP地址

      1)为实现网络中不同计算机之间的通信,每台机器都必须有一个唯一的标识——IP地址。

      2)IP地址格式:数字型,如:192.168.0.1(Ipv4)。

      想要深入了解的可以看我的这篇文章:IP地址的规划和设计方法(一)

      (4)端口

      1)用于区分不同的应用程序。

      2)端口号范围为0~65535,其中0~1023为系统所保留。

      3)IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的终结点,是TCP和UDP

的基础。

      4)HTTP协议使用80端口,FTP协议使用21端口,SMTP协议使用25端口,POP3协议使110端口, telnet协议使

用110端口。

      (5)Java中的网络支持

      针对网络通信的不同层次,Java提供的网络功能有四大类:

      1)InetAddress类:用于标识网络上的硬件资源。

      2)URL类:统一资源定位符,通过URL可以直接读取或写入网络上的数据。

      3)Sockets类:使用TCP协议实现网络通信的Socket相关的类。

      4)Datagram类:使用UDP协议,将数据保存在数据报中,通过网络进行通信。

      二Java中的InetAddress类的应用

      (1)InetAddress类

      1)InetAddress类用于标识网络上的硬件资源,标识互联网协议(IP)地址。

      2)java.net.InetAddress类表示互联网协议(IP)地址。

      InetAddress类中的方法: