自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱吃_宫爆鸡丁

勤学如春起之苗,不见其增,日有所长

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 UNP卷一chapter18 路由套接字

相比较第17章用ioctl函数获取整个路由表,利用sysctl函数也是可以做到而且无需超级用户权限。1、路由套接字上支持3种类型的操作数据链路套接字地址结构(定义在net/if_dl.h文件中,我的机器上没有这文件,需要的可以参考if_dl.h文件)2、介绍路由套接字的相关信息i、通过路由套接字交换的消息类型ii、在路由消息中用于指称套接字地址结构的常值(见书上P385)iii、获取并输出一个路由...

2018-05-31 22:30:51 289

原创 Effective C++ 条款22、23

条款22 将成员变量声明为private此条款解决的问题,为什么成员变量不该是public,然后所有反对public成员变量的论点同样适用于protected成员变量。于是成员变应该是private。理由一:语法一致性,public全为成员函数,private全为成员变量(看起来就舒服,调用起来(统一都要加个函数调用符)肯定也舒服,哈哈!)理由二:以函数取得或设定其值,即可实现“不准访问”、“只读...

2018-05-31 15:10:48 479

原创 Effective C++ 条款20、21

条款20 宁以pass-by-reference-to-const替换pass-by-value条款21 必须返回对象时,别妄想返回其reference以上内容均来自Scott Meyers大师所著Effective C++ version3,如有错误地方,欢迎指正!相互学习,促进!!...

2018-05-31 11:54:00 280

转载 socket阻塞与非阻塞,同步与异步、I/O模型

1. 概念理解     在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步/异步主要针对C端: 同步:      所谓同步,就是在c端发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理完...

2018-05-30 10:09:34 365

原创 Effective C++ 条款18、19

条款18 让接口容易被正确使用,不易被误用i、从客户角度出发考虑可能发生什么样的错误一个用来表现日期的class设计构造函数:class Date {public: Date(int month, int day, int year);};Date d(30, 3, 1995);//完蛋,月份没有30的哈一旦正确的类型就定位,限制其值有时候是通情达理的,以下比较安全的解法是预先定义所有有效...

2018-05-29 20:03:52 232

原创 Effective C++ 条款15、16、17

条款条款以上内容均来自Scott Meyers大师所著Effective C++ version3,如有错误地方,欢迎指正!相互学习,促进!!

2018-05-29 19:25:52 312

原创 Effective C++ 条款 13、14

条款11 在operator=中处理“自我赋值”"自我赋值"发生在对象赋值给自已时(这种情况是时常发生,所以并不可笑,很正常)class Bitmap{...};class Widget{public: Widget& operator=(const Widget& rhs);private: Bitmap* pb;};Widget w;w = w;//又如a[...

2018-05-26 13:14:18 243

原创 UNP卷一chapter17 ioctl操作

网络程序(特别是服务器程序)经常在程序启动执行后使用ioctl获取所在主机全部网络接口的信息,包括:接口地址、是否支持广播、是否支持多播,等等。所以此部分的ioctl及源码的学习可将其视为一个ifconfig、arp命令的实现过程。1、ioctl函数(POSIX未对它进行标准化,巨伤唉!)#include<unistd.h>int ioctl(int fd, int request,...

2018-05-25 23:31:10 249

原创 UNP卷一chapter16 非阻塞式I/O

阻塞套接字意味着当发出一个不能立即完成的套接字调用时,其进程将投入睡眠,等待相应操作完成。非阻塞套接字,如果输入操作不能被满足(对于tcp套接字即至少有一个字节的数据可读,对于udp套接字即有一个完整的数据报可读),相应调用将立即返回一个EWOULDBLOCK错误。1、非阻塞读和写:str_cli函数的开发如果套接字发送缓冲区已满,writen调用将会阻塞。在进程阻塞于writen调用期间,可能有...

2018-05-25 22:16:37 192

原创 Effective C++ 条款11、12

条款11 在operator=中处理“自我赋值”"自我赋值"发生在对象赋值给自已时(这种情况是时常发生,所以并不可笑,很正常)class Bitmap{...};class Widget{public: Widget& operator=(const Widget& rhs);private: Bitmap* pb;};Widget w;w = w;//...

2018-05-24 09:26:22 297

原创 Effective C++ 条款8、9、10

此条款举一实例,代码如下class Widget {public: Widget& operator=(const Widget& rhs) {//返回类型是引用,因为返回对象作为左值,需要是引用返回类型才能被修改 ... return *this; //返回左侧对象 }};以上内容均来自Scott Meyers大师所著Ef...

2018-05-23 09:11:28 278

原创 UNP卷一chapter15 UNIX协议

以下知识点来均来自steven先生所著UNP卷一(version3),刚开始学习网络编程,如有不正确之处请大家多多指正。

2018-05-22 19:56:15 227

原创 Effective C++ 条款5、6、7

以下内容均来自Scott Meyers大师所著Effective C++ version3,如有错误地方,欢迎指正!相互学习,促进!!

2018-05-21 20:19:09 242

原创 UNP卷一chapter13 daemon和inetd超级服务器

以下知识点来均来自steven先生所著UNP卷一(version3),刚开始学习网络编程,如有不正确之处请大家多多指正。1、守护进程(daemon)在后台运行且不与任何控制终端关联的进程——守护进程。守护进程产生的所有输出通常通过调用syslog函数发送给syslogd守护进程。系统管理员可根据发送消息的守护进程以及消息的严重级别,完全控制这些消息的处理方式。守护进程多种启动方法:i、在系统启动阶...

2018-05-20 23:34:43 249

原创 Effective C++ 条款1、2、3、4

以下内容均来自Scott Meyers大师所著Effective C++ version3,如有错误地方,欢迎指正!相互学习,促进!!条款1 视C++为一个语言联邦理解C++,须认识其主要的次语言:1、C。C++是以C为基础。区块、语句、预处理器、内置数据类型(build-in data types)、数组、指针等都来自C嘛!以C++内的C成分工作时,高效编程守则昭出C语言的局限:没有...

2018-05-20 13:23:16 464

原创 UNP卷一chapter14 高级I/O函数

以下知识点来均来自steven先生所著UNP卷一(version3),刚开始学习网络编程,如有不正确之处请大家多多指正。本章主要讲述在I/O操作上设置超时的三种方法,然后介绍5种I/O函数中的3种,如何确定套接字接收缓冲区中的数据量,在套接字上使用C的标准I/O函数库,最后讨论等待事的一些高级方法。东西有点杂,并且与标题有点不太符合,将就吸收吧!1、套接字超时i、使用alarm函数和SIGALRM...

2018-05-20 11:12:31 225

原创 UNP卷一chapter12 IPv4与IPv6的互操作性

以下知识点来均来自steven先生所著UNP卷一(version3),刚开始学习网络编程,如有不正确之处请大家多多指正。1、双栈主机既存在着IPv4协议栈,又存在着IPv6协议栈,此处只针对客户和服务器使用不同协议的两种情况讨论。2、IPv4客户和IPv6服务器其通信过程如下:(1)IPv6服务器启动后创建一个IPv6的监听套接字,假定服务器把通配地址捆绑到该套接字;(2)IPv4客户调用geth...

2018-05-17 19:50:39 238

原创 UNP卷一chapter11 名字与地址转换

以下知识点来均来自steven先生所著UNP卷一(version3),刚开始学习网络编程,如有不正确之处请大家多多指正。1、域名系统(DNS)资源记录A:A记录把一个主机名映射成一个32位的IPv4地址;AAAA:把一个主机名映射成一个128位的IPv6;PTR:PTR记录把IP地址映射成主机名;MX:MX记录把一个主机指定作为给定主机的“邮件交换器”(mail exchanger)CNAME:C...

2018-05-13 21:59:43 389

原创 UNP卷一chapter9/10 基本SCTP套接字编程

以下知识点来均来自steven先生所著UNP卷一(version3),刚开始学习网络编程,如有不正确之处请大家多多指正。1、流控制传输协议(SCTP)sctp在客户和服务器之间提供关联(连接只涉及两个ip地址之间的通信,而关联指代两个系统之间的一次通信,其支持多宿,涉及不止两个地址)。sctp同样提供可靠性、排序、流量控制以及全双工的数据传送。与tcp不同,sctp面向消息;sctp能够在所连接的...

2018-05-10 23:15:20 276

原创 UNIX网络编程—源代码编译问题修复

以下问题的修复均来自各网友大人的博客,所以在列举问题后,会相应附上其博客链接。具体修复细节此处不再阐述。(由于个人修练还在路上,今后遇见的问题一点点往上累积!)0、编译unp1源代码首先需要做的准备工作:见此博文1、UNIX网络编程-sctp编译运行错误及解决,参考博客:解决方法2、unp卷1P553,编译threads/example01.c代码时,需要的选项-lpthread。...

2018-05-06 20:53:17 268

原创 UNP卷一chapter8 基本UDP套接字编程

以下知识点来均来自steven先生所著UNP卷一(version3),刚开始学习网络编程,如有不正确之处请大家多多指正。1、下图是典型的UDP client/server程序所用套接字函数 需要注意的是,UDP不面向连接,故不需要使用connect函数,但使用connect也是可以的,只是作用不再是三次握手建立连接,其作用表现在检测异步错误(asychronous error)和绑...

2018-05-05 23:02:18 191

原创 UNP卷一chapter7 套接字option

以下知识点来均来自steven先生所著UNP卷一(version3),刚开始学习网络编程,如有不正确之处请大家多多指正。本章节读下来,了解套接字的option有哪些,分别对应的level,当然对于通用套接字、IPv4、IPv6、tcp等option还好理解,但针对sctp的option实在没耐心看下去(暂且跳过,后面有用到时再返回来看看)。1、getsockopt函数(获取套接字optio...

2018-05-05 21:34:08 146

翻译 UNP卷一chapter6 I/O复用:select和poll函数

以下知识点来均来自steven先生所著UNP卷一(version3),刚开始学习网络编程,如有不正确之处请大家多多指正。1、I/O复用模型:通过调用select或poll函数,阻塞在这两个系统调用中的某一个之上,见下图模型解释一下,阻塞I/O、非阻塞I/O、同步I/O、异步I/O阻塞I/O:从调用recvfrom开始到它返回的整段时间内是被阻塞的非阻塞I/O:调用recvfrom开始,只要无数据准...

2018-05-03 21:47:43 218

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除