C++套接字编程基础知识介绍

一 点睛

Linux网络编程包括:用户态网络编程和内核态网络编程。

无论在Windows平台还是Linux平台,都对套接字实现了自己的一套编程接口。Windows下的Socket实现叫Windows Socket。Linux下的实现有两套:一套是伯克利套接口,起源于Berkeley Unix,这套接口很简单,得到了广泛应用,已经成为Linux网络编程事实上的标准;另一套是传输层接口,它是System V系统上网络编程API,所以这套编程接口更多是在Unix上使用。

Socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用,以实现进程在网络中通信。

Socket编程接口其实就是用户进程(应用层)和传输层或网络层之间的编程接口。

二 网络程序架构

一种是B/S架构:浏览器查看网站上网页就是这种架构下的应用。

一种是C/S架构:例如,我们计算机上安装的QQ程序就是客户端,而在腾讯公司内部还有服务器端程序。

基于套接字的网络编程,通常使用C/S架构。一个简单的客户机和服务器之间的通信过程如下:

1 客户机向服务器提出一个请求。

2 服务器收到客户机的请求,进行分析处理。

3 服务器将处理的结果返回客户机。

三 套接字类型

Linux下有3种类型套接字

  • 流套接字:SOCK_STREAM
  • 数据报套接字:SOCK_DGRAM
  • 原始套接字:SOCK_RAW

原始套接字与标准套接字(标准套接字包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值