网络编程总结

网络体系结构研究的是什么:

网络的层次结构和每层所使用协议的集合

OSI模型:

应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

TCP/IP协议:

应用层,传输层,网络层,网络接口和物理层

TCP和UDP的区别:

1.共同点:

同属于传输层协议

2.不同点:

TCP:有连接,可靠

UDP:无连接,不保证可靠

TCP:

(1)是一种面向连接的传输层协议(三次握手)

(2)它能提供高可靠性通信(即数据无误,数据无丢失,数据无失序,数据无重复到达)

UDP:

不保证可靠的无连接协议,在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

TCP/IP网络程序设计的预备知识

1.Socket(套接字)

socket需要一种通用的网络编程接口,它是一个特殊的文件描述符(read,write,close)

流式套接字(SOCK_STREAM)----TCP

数据报套接字(SOCK_DGRAM)-----UDP

原始套接字(SOCK——RAW)

TCP服务器/客户端通信

客户端:

1.创建一个socket对象 socket()

2.设置对方的IP地址和端口号 struct_sockaddr_in

3.请求连接 connect()

4.发,收  write/read

                send/recv

5.关闭socket对象 close()

服务端:

1.创建socket对象 socket()

2.绑定套接字:bind()

3.启动监听:listen()

4.接收客户的连接请求:accept()

5.创建新的连接套接字

6.收,发

read()  write()

7.关闭套接字:close()

TCP常用的函数

 

  1. Udp服务器/客户端

1.UDP: (User Datagram Protocol 用户数据报协议)

UDP:不保证可靠的无连接协议,在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

适用情况:

  1. 发送小尺寸数据(如对DNS服务器进行IP地址查询时)
  2. 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
  3. 适合于广播/组播式通信中。
  4. MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
  5. 流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

    IO多路复用

    1.为什么要使用IO多路复用

  6. 应用程序中同时处理多路输入输出流,若采用阻塞模式,将得不到预期的目的;
  7. 若采用非阻塞模式,对多个输入进行轮询,但又太浪费CPU时间;
  8. 若设置多个进程,分别处理一条数据通路,将产生进程间的同步与通信问题,使程序变得更加复杂;
  9. 比较好的方法是使用I/O多路复用。其基本思想是:
    • 先构造一张有关描述符的表,然后调用一个函数。当这些文件描述符中的一个或多个已准备好进行I/O时函数才返回。
    • 函数返回时告诉进程那个描述符已就绪,可以进行I/O操作。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好困..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值