Socket编程基础网络知识

本文介绍了网络通信的基础知识,包括IP地址的IPv4和IPv6类型,域名及其解析机制,以及Socket的工作原理。详细阐述了TCP协议的特性,如面向连接、可靠传输,并解释了TCP通信的三个步骤。此外,还探讨了端口与端口号的作用,以及TCP网络应用程序的开发流程,包括TCP客户端和服务器端的开发。
摘要由CSDN通过智能技术生成

IP地址

  • 标识网络中唯一一个设备的地址,然后就可以进行数据通信了
  • 地址可以有IPv4和IPv6类型的
  • IPv4是点分十进制的,例如192.168.199.161
  • IPv6是冒号16进制

在linux中使用ifconfig来查看网卡信息,就能查看IP地址

域名

  • 就是IP地址的别名,通过域名能解析出来一个对应的IP地址
  • 就好像本机的域名是localhost,能解析出来127.0.0.1一样

Socket中Send核Recv原理

  • 当创建一个TCP socket对象时,会有一个发送缓冲区接受缓冲区产生
  • 其实就是内存中的一块空间
Send
  • 若要发数据,必须通过网卡,应用程序无法直接通过网卡来发送数据,所以需要OS来调用接口
  • 程序首先把数据写入发送缓冲区,然后由OS控制网卡,把发送缓冲区的数据发送给服务器网卡
Recv
  • OS调用接口
  • OS把收到的数据先放到接收缓冲区,然后应用程序再从接收缓冲区获取数据

不管是发送还是接收,都是OS控制网卡实现的

端口和端口号

  • 每运行一个网络程序都有一个端口,一个设备可能运行着一堆程序,为了保证能发送到正确的程序,就使用端口号
  • 端口号就是个数字嘛
  • 一共有65536个端口
端口的分类
  • 知名端口号:大家都知道的,从0-1023
  • 动态端口号:开发应用程序可以使用的端口号 从1024-65535选
    • 如果没设置,系统自动给你分配
    • 运行的程序退出的时候,占用的端口号会被释放

TCP协议的介绍

  1. 网络应用程序之间的通信流程
  • 在发送数据之前需要选择一个对应的传输协议,保证程序之间按照指定的规则进行数据通信
  1. TCP概念
  • TCP:传输控制协议
  • 面向连接的、可靠的、基于字节流的传输层通信协议
  1. TCP通信步骤:
    1. 创建连接
    2. 传输数据
    3. 关闭连接

就跟打电话一样,先拨电话,在对方没接之前都没建立连接,一旦接了,就建立了连接

  1. 特点
    • 面向连接
    • 可靠传输
      • TCP采用应答机制(一问一答,收到数据的时候会发一个回去说明收到)
      • 超时重传(发送一段时间,另一方没有回复收到,超过一段时间就会再发)
      • 错误校验(比如编号顺序错了,就能说明错了)
      • 流量控制和阻塞管理(如果对方没有来得及接受,就先写在网卡缓冲区里,这个缓冲区有上限,如果满了就不能发了)

Socket介绍

  • Socket是进程之间通信的一个工具,就跟插座一样,家用电器想工作需要插座通电,进程想网络通信需要通过套接字
  • 是数据的搬运工,基本现在都需要socket

TCP网络应用程序的开发流程

  • TCP客户端开发
    • 运行在用户设备上的程序
  • TCP服务端开发
    • 运行在服务器上的程序,给客户端提供服务
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值