socket编程(1)—— 一对一通信(本地IPC和网络)

本文介绍了网络编程的基础知识,包括OSI七层协议模型、常见协议、IP地址、子网掩码和端口的概念。重点讲解了socket编程中的一对一通信,涉及服务端和客户端的创建、通信地址准备、绑定、读写操作以及关闭过程。通过实例解析了本地IPC和网络通信的区别与实现。
摘要由CSDN通过智能技术生成

一 网络基础知识

1 OSI七层协议模型

  人和计算机之间交互分了7层(OSI 7层模型):物理层、数据链路层、网络层、传输层、会话层、表现层、应用层
  TCP/IP协议模型中,把应用、表现层和会话层合并为一个大应用层。

2 常见协议

HTTP,FTP,TCP,IP,UDP,收发email的协议
  HTTP — 超文本传输协议(互联网)
  FTP — 文件传输协议(上传和下载)
  TCP — 传输控制协议(一般不翻译)
  UDP — 用户数据报协议
  IP — Internet协议
把一组相关的协议,叫做协议簇(族)。比如:TCP/IP

3 IP地址、子网掩码、端口

3.1 IP地址

  IP地址就是计算机在网络中的地址,用4字节/6字节的整数表示,4字节的IPV4,6字节的IPV6。
  IP地址 有两种常用的表示方法:
  1.计算机底层是支持8位十六进制的32位整数(32位二进制)。
  2.人更喜欢点分十进制表示方法,每个字节转成十进制,中间用.隔开, 叫做点分十进制192.168.1.1
  两种表示方法底层其实是一样的,比如:
    点分十进制 172.40.0.10
    用十六进制可以写成 0xAC28000A
    192.168.100.20 -> 0xC0A86414

  查看IP地址的命令:
    Windows用 ipconfig
    Unix/Linux用 /sbin/ifconfig

  IP地址又分四级:
    a类 0
    b类 10
    c类 110
    d类 1110

  IP地址在网络中可以定位一台计算机。每个网卡在出厂时都有唯一的网卡地址,也叫mac地址(物理地址),IP地址其实是对应网卡地址然后定位计算机。但IP地址和MAC的绑定是 不固定的。 
 

3.2 子网掩码 

子网掩码,主要用于判断是否一个网段。
比如:
  IP地址: 166.111.160.1 与 166.111.161.45
  子网掩码: 255.255.254.0
IP地址位与子网掩码,如果结果一样,就是同一网段。
166.111.160.1 & 255.255.254.0 = 166.111.160.0
166.111.161.45 & 255.255.254.0 = 166.111.160.0

3.3 端口

  IP地址虽然可以找到计算机,但计算机如果不授权给你,你无法进行任何的操作。计算机用 端口 代表本机的某个进程,访问本机进程必须通过端口进行。

端口是16位的二进制的整数 0 — 65535,其中:
  0-1023 基本不用,被系统松散的占用了,比如:
    80 HTTP的端口(可以改)
    21 FTP端口 23 TELNET端口
  1024 — 48000+ 可用端口,某些软件安装后会占用某些特定端口,比如:
    1521 Oracle的监听端口
    8080 Oracle的Http Server
    7001 weblogic服务器占用的端口(Java 服务器)
     ……
  48000+ —– 65535 不稳定端口,随时可能被系统拿去做临时的端口


二 socket网络编程

  网络编程就是用IP地址定位计算机,用端口定位对应的进程。

  socket 本意就是插座,翻译成套接字。网络编程就是socket编程。
  网络编程发展到现在,涵盖的内容已经非常完善,c提供了比较完整的函数和变量支持。

  网络通信包括 一对一(点对点), 一对多。一对一分为本地通信(IPC)和网络通信。本地通信(两个本地进程) 使用 socket文件做交互媒介,后缀是 .sock,类型为s

  整数在存储时,本机有两种

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值