摘要: 之前的网络通信中,采用的是单播(唯一的发送方和接收方)的方式。但有时需要把数据同时发送给局域网中的所有主机,就需要广播。例如,通过广播ARP包获取目标主机的MAC地址。 只有数据包套接字(UDP协议)才能使用广播。 广播地址 IP地址用来标识网络中的一台主机。 子网掩码表示IP地址中网络号占几字节。 阅读全文
posted @ 2020-01-28 22:39 朱果果 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 在网络通信中,很多操作会使进程阻塞, 比如,TCP套接字中的read、send、recv、accept、connect等,以及UDP套接字中的recvfrom等。 超时检测的必要性: — 避免进程在没有数据时无限制地阻塞 — 当设定的时间到时,进程从原操作返回继续运行 网络超时检测(一) 设置soc 阅读全文
posted @ 2020-01-28 21:09 朱果果 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 用于设置套接字的属性的函数有: setsockopt() getsockopt() 主要以setsockopt使用为主。 #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int getsockopt(int sockfd, 阅读全文
posted @ 2020-01-28 19:51 朱果果 阅读(764) 评论(0) 推荐(0) 编辑
摘要: 首先了解下数据在client与server端的通信中的收发过程 考虑单向的数据流,即 即A(客户端)向B(服务端)发送数据。 在ProgramA中,定义一个数组char buf[100] = "tcp" ;那么buf就是应用程序缓冲区,即图中A对应的圆内存,send / write函数对应上面蓝色的 阅读全文
posted @ 2020-01-28 15:03 朱果果 阅读(1177) 评论(0) 推荐(0) 编辑
摘要: (转载:http://c.biancheng.net/view/2123.html) 网络编程就是编写程序使两台联网的计算机相互交换数据。这就是全部内容了吗?是的!网络编程要比想象中的简单许多。那么,这两台计算机之间用什么传输数据呢?首先需要物理连接。如今大部分计算机都已经连接到互联网,因此不用担心 阅读全文
posted @ 2020-01-28 14:28 朱果果 阅读(633) 评论(0) 推荐(0) 编辑
摘要: 华清直播:http://www.makeru.com.cn/live/5413_1937.html 深度理解select、poll和epoll Linux IO模式及 select、poll、epoll详解 阅读全文
posted @ 2020-01-28 13:21 朱果果 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 网络信息检索函数 man gethostbyname 1 #include <netdb.h> 2 extern int h_errno; //错误号 3 4 //name一般为域名,通过域名获取主机相关信息 5 struct hostent *gethostbyname(const char *n 阅读全文
posted @ 2020-01-28 13:16 朱果果 阅读(268) 评论(0) 推荐(0) 编辑