黑马程序员——网络概念及Socket编程示例

来源:互联网 发布:win10网络授权 编辑:程序博客网 时间:2024/06/05 00:51

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


一. TCP/IP 参考模型

       http://bbs.itheima.com/data/attachment/forum/201506/09/111744p1b1r3bcmzcbh6mh.png.thumb.jpg


二 . 七层详解:

    1. 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

    2. 数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。
    3. 网络层:主要将下层接收到的数据进行IP地址(例,192.168.0.1)的封装与解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包。
    4. 传输层:定义了一些传输数据的协议和端口号(WWW端口号80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层叫做段。
    5. 会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接收会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。
    6. 表示层:主要是进行对接收的数据进行解释,加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够识别的东西(如图片、声音等)。
    7. 应用层:主要是一些终端的应用,比如说FTP(各种文件下载)、WEB(IE浏览)、QQ之类的(可以把它理解成我们在电脑屏幕上可以看到的东西,就是终端应用)。

三. 网络基础
  1. IP地址:InetAddress

        网络中设备的标识。
        不易记忆,可用主机名。
        本地回环地址:127.0.0.1 主机名:localhost。
 2、IPV4数量已经不够分配,所以产生了IPV6。
 3、在没有连接互联网的情况,为了让访问本机方便,所以分配了一个默认的IP地址,也就是本地回环地址。
 4、端口号:用于标识进程(应用程序)的逻辑地址,不同进程的标识。有效端口:0~65535,其中0~1024系统使用或保留端口。
 5、常见协议:UDP、TCP。

四. Socket
       1. Socket就是为网络服务提供的一种机制。通信的两端都有Socket。网络通信其实就是Socket间的通信。数据在两个Socket间通过IO传输。
       2. 启动发送端、接收端线程程序:
import java.io.IOException;
import java.net.DatagramSocket;

public class ChatDemo
{
        public static void main(String[] args) throws IOException {
                
                DatagramSocket send = new DatagramSocket();

                DatagramSocket rece = new DatagramSocket(10001);

                Send s = new Send(send);
                Rece r = new Rece(rece);

                new Thread(s).start();
                new Thread(r).start();

        }
}


0 0