• java网络编程之Socket


    1.什么是网络模型

    网络模型的本质是两个设备之间的数据交换,再计算机网络中,设备主要指2个计算机,

    现在的网络编程基本上都是基于请求/响应方式的,一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。

    再网络编程中,发起连接请求的,被称为客户端(client),等待其他程序连接的程序被称为服务端(Server),客户端再需要使用的时候启动,服务端要一直启动

    2.ip地址与域名

    在网络中,需要一个设备的地址,就需要使用该设备的ip地址,现在的ip地址使用的是IPv4,由4个0-255之间的数字组成,在计算机中,ip地址是分配给网卡的,每个网卡有一个唯一的地址,如果一个计算机有多个网卡,

    那这台机器有多个ip地址,再同一个网络内部,ip地址不能相同,ip地址不方便记忆,于是出现了域名,也就是给ip起了个名字,但是再网络中只能使用ip来进行传输,所以需要把域名转换为ip,这个就用到了

    DNS服务器,所以可以使用ip来找到对应的计算机。

    3.端口的概念

    为了再一台设备可以运行多个设备,于是出现了端口,一台设备有65536个端口,每个端口对应一个唯一的程序,每个网络程序都对应一个或者多个端口,操作系统一般占用了0-1024之间的端口,所以我们编程使用的时候一般使用1024之后的端口,

    网络编程就是使用IP地址,或域名,和端口连接到另一台计算机上对应的程序,按照规定的协议(数据格式)来交换数据,实际编程中建立连接和发送、接收数据在语言级已经实现,做的更多的工作是设计协议,以及编写生成和解析数据的代码罢了,然后把数据转换成逻辑的结构显示或控制逻辑即可。

    4.什么是Socket

    Socket就是为网络服务提供的一种机制,通讯的两端都有Socket网络通讯。之间通过IO传输

    在网络中,Socket函数需要指定是ipv4还是ipv6,传输层需要指定tcp还是udp

    基于tcp的Socket连接

     

     

    基于udp的Socket连接

    tcp和udp的区别

    udp:

    是面向无连接, 将数据及源的封装成数据包中,不需要建立建立连接,每个数据报的大小在限制64k内,因无连接,是不可靠协议,不需要建立连接,速度快。

    tcp:

    建议连接,形成传输数据的通道.,在连接中进行大数据量传输,以字节流方式,通过三次握手完成连接,是可靠协议,必须建立连接m效率会稍低。

     

     

  • 相关阅读:
    zookeeper基础笔记
    基于spring@aspect注解的aop实现
    Struts2中的开启AsyncContext的方法
    在执行gem install redis时 : ERROR: Error installing redis: redis requires Ruby version >= 2.2.2
    ConcurrentHashMap原理笔记
    Java并发Condition原理分析
    CountDownLatch实现原理
    ThreadPoolExecutor 线程池原理分析
    HashMap原理
    线程池的用法
  • 原文地址:https://www.cnblogs.com/fuqiang-zhou/p/12380796.html
Copyright © 2020-2023  润新知