linux编程--前言
来源:互联网 发布:win10装mysql 2502 编辑:程序博客网 时间:2024/05/21 10:29
1.首先要明白阻塞和非阻塞:
下面在网上找到的描述,感觉通俗易懂:
阻塞就是干不完不准回来, 非组赛就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你Copy过来的数据的话...这时候就体现出阻塞和非阻塞的不同之处了:对于阻塞模式的socket send函数将不返回直到系统缓冲区有足够的空间把你要发送的数据Copy过去以后才返回,而对于非阻塞的socket来说send会立即返回 WSAEWOULDDBLOCK告诉调用者说:"发送操作被阻塞了!!!你想办法处理吧..." 对于recv函数,同样道理,该函数的内部工作机制其实是在等待TCP/IP协议栈的接收缓冲区通知它说:嗨,你的数据来了.对于阻塞模式的socket 来说如果TCP/IP协议栈的接收缓冲区没有通知一个结果给它它就一直不返回:耗费着系统资源....对于非阻塞模式的socket该函数会马上返回,然后告诉你:WSAEWOULDDBLOCK---"现在没有数据,回头在来看看"
- netstat -an , 用来列出详细的网络状态
- telnet , 用法 telnet localhost 8888,8888表示你要连接的端口,经常用来调试服务端程序,不管你用不用,我是经常有,总比自己在写一个客户端来得快。
3.知道现在常用的网络库,libevent , libev, boost:asio...,公司你面一般都有自己的网络库,实际编程中很少用到socket api的,但是这是基础。
4.关于多线程,主要POSIX线程库,然后是三种线程同步方式(互斥、条件变量和信号量)
5.进程间通信(ipc)的知识。
- linux编程--前言
- linux c 编程之前言
- Linux网络编程—前言
- Linux下的C编程(前言)
- Linux编程环境介绍(0) -- 前言
- 《言简意赅之Linux设备驱动编程》 前言
- Linux前言
- Linux前言
- Linux前言
- linux嵌入式编程高手历程系列1-前言
- linux嵌入式编程高手历程系列1-前言
- 深入浅出Shell编程: 前言
- C++编程规范:前言
- IOS5编程 - 1 - 前言
- PASCAL 高级编程- 前言
- 深入浅出Shell编程: 前言
- 编程之美-前言
- C++编程入门前言
- 1058. A+B in Hogwarts (20)
- 原理分析之一:从JDBC到Mybatis
- 第12周项目4:学习辅助软件开发,任务2:小学生算术能力测试系统
- 【C 语言菜鸟之旅】1.4使用符号常量打印0, 20,...,300华氏温度与摄氏温度对照表
- php学习之目录与文件(一)
- linux编程--前言
- coredump设置方法
- 第12周项目5:银行系统,任务一:搭一个框架
- python-日期循环
- 应用Yii1.1和PHP5进行敏捷Web开发01
- intellij idea开发android从零开始(二) android的activity的使用以及理解
- leetcode: ZigZag Conversion
- ubuntu文件乱码
- 在linux环境下课程设计的封装