
《unix网络编程》
小_鱼
这个作者很懒,什么都没留下…
展开
-
socket编程中的5个安全隐患
隐患 1.忽略返回状态第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分成功的时候,您也许会迷失。反过来,这可能传播错误,使定位问题的源头变得困难。捕获并检查每一个返回状态,而不是忽略它们。考虑清单 1 显示的例子,一个套接字send 函数。 清单 1. 忽略 API 函数返回状态int status, sock,转载 2013-06-26 15:36:44 · 1345 阅读 · 0 评论 -
常用服务器模型总结
UNPv3上一共总结了9种服务器模型分别是:1.迭代服务器 2.并发服务器,为每个客户fork一个进程 3.预先派生子进程,每个子进程都调用accept,accept无上锁保护 4.预先派生子进程,以文件锁的方式保护accept 5.预先派生子进程,以线程互斥锁上锁的方式保护accept 6.预先派生子进程,由父进程向子进程传递套接口描述字转载 2013-10-23 20:32:39 · 594 阅读 · 0 评论 -
linux下C语言使用线程池(附带编码)
使用一个东西,我们要明白为什么使用它,如何使用它,使用它能达到什么效果在写本文章时,我也借鉴了网上的部分资源,因为是之前很早搜索到的资料无法追踪源头,所以在此不再写来源,谨感谢各位大神。1 使用线程池的原因通常使用多线程都是在需要的时候创建一个新的线程,然后执行任务,完成后退出。一般情况下是完全够满足我们的程序的。但是当我们需要创建大量的线程,并且执行一个简单转载 2013-10-23 21:42:42 · 475 阅读 · 0 评论 -
Socket网络编程常用的结构及函数小结
Socket网络编程常用的结构及函数小结 IP地址的作用是标示计算机的网卡地址,每台计算机都有一个IP地址;端口,是指计算机中为了标示在计算机中访问网络的不同程序而设的编号,并不是网卡接线的端口,而是不同程序的逻辑编号,并不是实际存在的;域名,是用来代替IP地址来标示计算机的一种直观名称,例如百度网站的IP地址是202.108.22.43,这个IP地址没有任何逻辑含义,不便记忆,而w转载 2013-09-30 19:16:33 · 432 阅读 · 0 评论 -
揭开Socket编程的面纱
揭开Socket编程的面纱 对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问: 1. 什么是TCP/IP、UDP? 2. Socket在哪里呢? 3. Socket是什么呢? 4. 你会使用它们吗? 什么是TCP/IP、UDP? TCP/IP(Transmi转载 2013-09-30 18:58:26 · 540 阅读 · 0 评论 -
带 外 数据
定义带 外 数据 想 像一下在银行人们排起队等待处理他们的帐单。在这个队伍中每个人最后都会移到前面由出纳员进行服务。现在想像一下一个走入银行,越过整个队伍,然后用枪抵 住出纳员。这个就可以看作为带 外 数据 。这个强盗越过整个队伍,是因为这把枪给了他凌驾于众人的权力。出纳员也会集中注意力于这个强盗身上,因为他知道当前 的形势是很紧急的。相应的,一个连接的流式套接口上的带 外 数转载 2013-09-08 14:22:05 · 669 阅读 · 0 评论 -
套接字选项
套接字机制提供了两个套接字选项接口来控制套接字的行为。一个接口用来设置选项,另外一个接口用来允许我们请求选项的状态。我们可以获得以及设置三种类型的选项。 1.通用选项,可以工作在所有的套接字类型。 2.在套接字层次上面进行管理的选项,但是依赖底部协议的支持。 3.和每个协议相关的协议选项。 Single UNIX Specification 只定义了套接字层的选项(上面所提到的前面转载 2013-09-08 13:40:00 · 541 阅读 · 0 评论 -
用C语言得到Linux主机的IP地址
#include ; #include ; #include ; #include ; #include ; #include ; #include ; #include ; #include ; #define ETH_NAME "eth0" int main() { int s转载 2013-09-07 23:26:25 · 869 阅读 · 0 评论 -
网络IPC:套接字
Contents套接字接口套接字描述符寻址字节序地址格式地址查询绑定地址建立连接数据传输套接字选项带外数据UNIX域套接字使用套接字的示例面向连接的ruptime无连接的ruptime套接字接口套接字接口是一组用来结合UNIX I/O函数进行进程间通信的函数,大多数系统上都实现了它,包括各种UNIX变种、Windows和Mac系统。转载 2013-09-08 14:12:37 · 667 阅读 · 0 评论 -
基于Linux的多播编程
一.单播,广播和多播1.单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。2.多播的概念:1>多播,也称为“组播”,将局域网中同一业务类型主机进行了逻辑上的分组,进行转载 2013-06-29 15:46:07 · 523 阅读 · 0 评论 -
uname gethostname getdomainname
linux系统中如何通过程序来获知系统信息 最近在做一个项目,遇到要在程序中动态的获取设备硬件信息。纠结了我很长时间,今天突然发现原来在linux中有API函数直接就可以实现。对于好东西,当然要和大家share下了。一.uname()函数1.使用uname函数来实现获取系统信息1>函数原型#include int uname(struct转载 2013-06-29 15:24:37 · 998 阅读 · 0 评论 -
B/S和C/S的区别
一、什么是CS和BS结构?1.C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。2.B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或转载 2013-06-29 12:47:04 · 468 阅读 · 0 评论 -
TCP和UDP的"保护消息边界" 机制
在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。 对于UDP转载 2014-06-10 22:19:51 · 1203 阅读 · 0 评论