net
财务码农小老板
我以前是一个穷逼财务,现在想做一名小资码农,将来我还想做不管闲事的小老板。
展开
-
网络编程学习:tcp/ip编程
tcp与udp的比较分析 tcp :不记录消息边界 udp:记录消息边界 用到的结构体 struct sockaddr_un { __SOCKADDR_COMMON (sun_); =====》#define __SOCKADDR_COMMON(sa_prefix) sa_family_t sa_prefi原创 2016-09-28 20:48:09 · 738 阅读 · 0 评论 -
select()函数(I/O多路复用)-并发服务器的实现
注意select函数调用后对文件描述符集合的影响#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <stdlib.h>#include <arpa/inet.h>#include <unistd.h>#include <string.h>#inc原创 2016-09-26 20:58:21 · 1278 阅读 · 0 评论 -
网络属性检查和设置-getsockopt()
#include <sys/socket.h>int getsockopt(int socket, int level, int option_name, void *restrict option_value, socklen_t *restrict option_len); 功能:获取套接字相关的选项信息 参数: socket: 文件原创 2016-09-27 19:50:26 · 542 阅读 · 0 评论 -
网络超时检测-setsockopt()
setsockopt()函数 使用setsockopt()实现超时检测#include <sys/socket.h>int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len);功能:设置套接字相关的选项信息参数: sock原创 2016-09-27 20:24:34 · 924 阅读 · 0 评论 -
网络超时检测-select()函数
select()函数 1、利用select()函数进行超时检测相比较于其他方式的特点是: 使用select函数实现超时检测,超时时间设置一次,只会有效一次,所以需要将其放在循环里面 2、在进行超时检测时,应注意的是select的返回值。如果利用其进行超时检测,第5个参数必然不能为 NULL ,在其不为空时,超时后返回 0 。使用select()实现超时检测 #inclu原创 2016-09-27 20:43:32 · 2913 阅读 · 0 评论 -
网络超时检测-alarm()函数
alarm()函数 当执行alarm()时间,在这期间还会执行下面的函数,直到到达时间后,会进行信号处理函数,之后会继续原来的函数往下执行,将其称之为自重启属性 如果想要实现超时检测,需要跳过之后的函数往下执行。 #include <signal.h> int sigaction(int signum, const struct sigaction *act,struc原创 2016-09-27 20:47:46 · 1371 阅读 · 0 评论 -
广播
广播概念 前面介绍的数据包发送方式只有一个接受方,称为单播 如果同时发给局域网中的所有主机,称为广播 只有用户数据报(使用UDP协议)套接字才能广播广播地址 以192.168.1.0 (255.255.255.0) 网段为例,最大的主机地址192.168.1.255代表该网段的广播地址 发到该地址的数据包被所有的主机接收 255.255.255.255在所有网段中都代表广播原创 2016-09-28 19:22:34 · 306 阅读 · 0 评论 -
组播
组播概念 单播方式只能发给一个接收方。 广播方式发给所有的主机。过多的广播会大量占用网络带宽,造成广播风暴,影响正常的通信。 组播(又称为多播)是一种折中的方式。只有加入某个多播组的主机才能收到数据。 多播方式既可以发给多个主机,又能避免象广播那样带来过多的负载(每台主机要到传输层才能判断广播包是否要处理)组播地址段 D类地址(组播地址) 不分网络地址和主机地址,第1原创 2016-09-28 20:14:58 · 419 阅读 · 0 评论 -
网络编程学习: 1.文件服务器( server 端)
程序目的: 利用tcp通信协议实现客户端对服务器端文件目录的下载、文件的下载、文件的上传、退出等;#include <stdio.h>#include <stdlib.h>#include <string.h>#include <arpa/inet.h>#include <netinet/in.h>#include <sys/socket.h>#include <sys原创 2016-11-27 22:43:45 · 475 阅读 · 0 评论 -
unpv13e/lib/unp.h头文件
此代码为《Unix网络编程卷一:套接字联网API(第三版)》源代码 源代码下载地址:http://www.ituring.com.cn/book/164 /* include unph *//* Our own header. Tabs are set for 4 spaces, not 8 */#ifndef __unp_h#define __unp_h#include "原创 2017-08-17 22:49:46 · 944 阅读 · 0 评论 -
unpv13e/sock/error.c
#include <errno.h> /* for definition of errno */#include <stdarg.h> /* ANSI C header file */#include "ourhdr.h"static void err_doit(int, const char *, va_list);char *pname = NU原创 2017-08-22 11:00:49 · 295 阅读 · 0 评论 -
unpv13e/lib/readn.c
#include "unp.h"/* Read "n" bytes from a descriptor: 从套接字描述符读取n个字节到定义好的缓冲区里去*/ssize_t readn(int fd, void *vptr, size_t n){ size_t nleft; //size_t 是无符号整形,相当于unsigned int; 要读取的字节数 ssize_t原创 2017-09-06 22:20:25 · 321 阅读 · 0 评论 -
arp地址解析协议
简述本博文内容大义来自《tcp/ip详解:卷一》、《计算机网络:自顶向下方法》、《计算机网络(谢希仁)》、《图解tcp/ip》的学习内容。计算机间进行通信必须要知道彼此的ip地址、mac地址,两者缺一不可 arp协议就是保障通信的计算机双方都知道彼此ip地址、mac地址的一种机制。arp缓存arp缓存是arp协议运行的基础 1.timer: 缓存中每个条目都有一个计时器,用于清除超时的条目(完原创 2017-10-11 09:49:57 · 2139 阅读 · 0 评论 -
网络编程学习:io模型之io多路复用
多路复用的概念:简而言之,就是将准备要用的文件描述符添加到一张表里,然后让select等待表里的任一描述符准备就绪(就是可以执行了),然后执行那个已经准备就绪的文件描述符,然后把其他的没有准备好的文件描述符全都删除;援引知乎上的一个解释:“” 这些名词比较绕口,理解涵义就好。一个epoll场景:一个酒吧服务员(一个线程),前面趴了一群醉汉,突然一个吼一声“倒酒”(事件),你小跑过去给他倒一杯,然原创 2017-11-09 15:25:39 · 383 阅读 · 0 评论 -
网络学习:基于多进程的并发服务器
今天在练习多进程的并发服务器是出现了一个accept函数bad file descriptor的错误信息。分析了一下代码,原来是忘记让子进程在循环外退出了,导致子进程直接执行了,close(listenfd)。所以返回了这个错误码。记录一下。原创 2017-11-18 15:57:31 · 455 阅读 · 0 评论