网络编程-知识点01篇

为什么学习网络编程?

1.无名管道 (具备亲缘关系的进程)

2.有名管道

3.信号量

4.消息队列

5.共享内存

6.信号灯集

7.socket

前6中只能由于同主机之间,socket用于不同主机之间

OSI开放系统控制模型

四层

应用层(telnet(远程登录服务协议), FTP, HTTP, SMTP,DNS ,TFTP等)SSH: 安全外壳协议

传输层(TCP,UDP)

网络层(IP, ICMP, IGMP)

链路层(ARP(由IP获取MAC),RARP(由MAC获取IP))

最大传输单元:MTU   1500字节,如果包含以太网头和以太网尾的话就是1518字节,其中头14字节,尾4字节

内核管理的5大功能

1.文件管理

2.进程管理

3.设备管理

4.网络管理

5.内存管理

TCP和UDP的异同:

都是传输层的协议。

TCP是传输控制协议,是面向链接的,提供可靠性传输数据的协议;

使用情况:在需要传输大量数据的时候,需要可靠数据传输的时候,例如QQ,MSN

UDP:是用户数据报协议,提供无连接,不可靠的数据传输,

使用场合:音视频,网络聊天室

点分十进制IP地址转成网络字节序用 ret = inet_addr(IP);

网络字节序转c点分十进制  char *p = (unsigned char *)&ret

端口号: 每一个进程都有一个唯一标识进程号,但是因为进程在停止以后 在启动时,进程号会发生变化,所以人们认为的给进程规定了端口号。

SOCKET 与TCP结合 实现流程

服务器端:

1. 创建套接字    socket();

2. 填充网络信息结构体  struct   sockaddr_in  server_addr;

3. 绑定套接字和网络信息结构体 bind();

4. 使套接字处于被动监听状态  listen();

5.  阻塞等待客户端链接   accept();

6.  收发数据   recv,send

6. 关闭套接字  close();

客户端:

1. 创建套接字    socket();

2. 填充网络信息结构体  struct   sockaddr_in  server_addr;

3.与服务器建立联系   connect();

4. 收发数据  recv send

5. 关闭套接字  close();

UDP 与socket结合

服务器端:

1. 创建套接字   socket();

2.  填充网络信息结构体

3. 将套接字和网络结构体绑定  bind();

4. 收发数据  recvfrom  sendto

5. 关闭套接字  close();

客户端:

1. 创建套接字  socket();

2. 填充网络信息结构体  struct   sockaddr_in  server_addr;

3. 收发数据   recvfrom  sendto;

4.  关闭套接字  close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值