Linux socket 编程
ganggexiongqi
这个作者很懒,什么都没留下…
展开
-
单播、多播(组播)和广播的区别
单播、多播(组播)和广播的区别<br />原文:http://blog.chinaunix.net/u2/76263/showart_1412959.html<br />单播、多播和广播单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在?<br /><br /> 1. 单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单转载 2010-12-16 22:01:00 · 881 阅读 · 0 评论 -
套接口上的标准I/O [1]
使用标准I/O 流的必要性@ Linux 的stdio 实用程序符合ANSF C3.159.1989 标准,这种接口标准有助于程序移植到各种机器平台上。@ read,write 函数不能一次返回一行或者一个数据,而是一次性返回所有数据。而使用标准I/O 可以实现一次返回一行或者一个数据,写操作时,使用标准I/O 可以逐字写入,同时不会带来太大的访问负担。使用write 写操作时需要付出较大的代价。@ stdio 软件包还提供了输入/ 输出缓冲。使用缓冲技术可以显著的提高原创 2010-08-29 21:56:00 · 788 阅读 · 0 评论 -
5 面向非连接的协议
例子中使用UDP数据报服务。server在指定的端口接受time的格式串,然后把结果发回到发送串的源主机。client 先向指定主机的指定端口发送time的格式串,之后等待其他主机向自己发送数据。* netstat -pa --udp udp 0 0 gang-desktop.loca:10000 *:* */ //server #include #include #include #include #include #include #includ原创 2010-08-27 17:33:00 · 1118 阅读 · 0 评论 -
并发客户服务程序
<br />并发客户服务程序<br /> 途径:<br /> 1.多进程<br /> 2.多线程<br /> 3.单进程和select函数使用<br /> 4.单进程和poll函数使用<br /> 我们这里只研究第三种。<br /> 下面先看一下select函数的使用。<br /> int select(int nfds, fd_set *readfds, fd_set *writefds,<br /> fd_set *exceptfds, struct原创 2010-08-30 16:29:00 · 1049 阅读 · 0 评论 -
面向连接的协议 [2 ]
面向连接的协议—服务器端由图我们可以看出,服务器与客户的区别在于:服务器必须进行套接口绑定。因为如果服务器没有地址,客户就无法进行连接。S3 的作用在于告诉内核,在某个套接口上监听并接收请求。服务器需要监听连接。下面,我们介绍一下有关的函数,int listen(int sockfd, int backlog);s: 用于监听的套接口。Backlog: 监听队列(the queue of pending connections) 的最大长度。2.2 之后的版本中,backlo原创 2010-08-29 16:31:00 · 1049 阅读 · 0 评论 -
面向连接的协议 [1]
<br />在进一步学习TCP/IP之前,我们要先了解两个文件,和相关的函数。<br /> /etc/services <br /> 这个文件将某个特定的Internet服务名映射到协议的端口。<br /> 例如: ssh 22/sctp # SSH<br /> 相关函数有:getservent,setservent,endservent//操作services文件<br /> getservbyname,getserv原创 2010-08-29 13:31:00 · 3657 阅读 · 0 评论 -
4. 套接口的类型与协议
# 无名套接口 套接口不一定需要地址,比如socketpair生成了一对互相链接但是没有地址的套接口,这就是无名套接口。因为只有这一对套接口相连所以没有必要使用地址。 # 域 int socket(int domain, int type, int protocol); int socketpair(int domain, int type, int protocol, int sv[2]); domain: 指定了通信使用的协议族,而不是某个特定的协议。PF_LOCAL 表明指定的协议族是本地原创 2010-08-18 21:46:00 · 2223 阅读 · 0 评论 -
3. 生成套接口地址
<br />生成套接口地址<br /><br /> 1.通用套接口地址<br /><br /> #include <sys/socket.h><br /> struct sockaddr {<br /> sa_family_t sa_family;//地址族,Linux中为2字节<br /> char sa_data[14];//地址数据<br /> };<br /><br /> 2.本地套机口地址<br /><br /> #include <s原创 2010-08-18 20:45:00 · 1395 阅读 · 0 评论 -
1.7 客户/服务器应用编程
<br />下面是个例子,父进程调用 socketpair 生成套接口,再调用 fork 生成子进程。父进程代表服务器端,子进程代表客户端。<br />#include <stdio.h><br /> #include <stdlib.h><br /> #include <unistd.h><br /> #include <errno.h><br /> #include <string.h><br /> #include <time.h><br /> #include <sys/types.h>原创 2010-08-16 10:38:00 · 839 阅读 · 0 评论 -
1. 套接口简介
<br />参考书目: 《实战Linux Socket 编程》 Warren W.Gay 著 詹俊鹄 于卫 译 西安电子科技大学出版社<br /> UNIX 网络编程 第一卷:套接口API (3rd) BILL FENNER 等著 杨继张译 清华大学出版社<br /> <br />Linux中的套接口于电话相似。套接字代表通信线路中的端点,端点之间就是数据通信网络。套接口于电话的相似行还体现在,当你给某人打电话时,拨叫的是对方的电话号码。套接字中的网络地址原创 2010-08-14 23:03:00 · 1270 阅读 · 0 评论 -
TCPDump
1. TCPDump介绍 TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBS转载 2011-10-23 17:06:15 · 1174 阅读 · 0 评论