首页
学习
活动
专区
工具
TVP
发布

转载gongluck的CSDN博客

https://blog.csdn.net/gongluck93
专栏作者
149
文章
354046
阅读量
52
订阅数
第30章 客户/服务器程序设计范式
觉得还是按:1 --> 7 --> 9 的顺序选取服务器模型比较(简单)可取。
_gongluck
2018-03-09
5870
第21章 多播
1·多播(组播)地址:224.0.0.0~139.255.255.255 2·发送多播数据报无需任何特殊处理,发送应用程序不必为此加入多播组 3·多播相对于广播的优势在于不会对多播分组不感兴趣的主机增加额外负担 #include "../Gnet.h" int main(int argc, const char* argv[]) { int sendfd, recvfd; const int on = 1; //const int off = 0; struct socka
_gongluck
2018-03-09
1.1K0
第25章 信号驱动式I/O
(1)建立SIGIO信号的信号处理函数 (2)设置套接字属主 (3)开启套接字的信号驱动式I/O标志 #include "../Gnet.h" int fd; void sig_io(int si
_gongluck
2018-03-09
8110
第20章 广播
1·广播和多播要求用于UDP或原始IP,它们不能用于TCP。 2·单播IP数据报仅由通过目的IP地址指定的单个主机接收。 3·广播分组去往子网上的所以主机,包括发送主机本身。 4·(一般)除非显式告诉内核我们准备发送广播数据报,否则系统不允许我们这么做。     const int on = 1;     setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on)); 5·解决竞争状态:     a.使用pselect(阻塞信号)     b.使
_gongluck
2018-03-09
6150
第17章 ioctl操作
#include <sys/ioctl.h> int ioctl(int fd, unsigned long request, ...); /usr/src/linux-headers-4.10.0-35/include/uapi/linux/if.h /* * INET An implementation of the TCP/IP protocol suite for the LINUX * operating system. INET is implemented using the B
_gongluck
2018-03-09
1.7K0
第16章 非阻塞式I/O
执行时间:         停等版本(完全阻塞)  》  select加阻塞I/O版本  》  fork多进程版本(Linux下多线程也应该差不多)  》  非阻塞I/O版本 非阻塞读写 #incl
_gongluck
2018-03-09
1K0
第16章 Sun RPC
RPC:远程过程调用 默认情况下服务器并不多线程化: rpcgen -C data.x -DDEBUG gcc server.c data_svc.c data_xdr.c -o server gc
_gongluck
2018-03-09
1.4K0
第14章 高级I/O函数
设置套接字时间限制: 1、使用alarm函数和SIGALRM信号 2、使用由select提供的时间限制 3、使用SO_RCVTIMEO和SO_SNDTIMEO套接字选项 #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, const void *buf, size_t count); #include<sys/uio.h> struct iovec { void* iov_
_gongluck
2018-03-09
6360
第13章 守护进程和inetd超级服务器
#include <syslog.h> void openlog(const char* ident, int options, int facility); void syslog(int pri
_gongluck
2018-03-09
1.3K0
第15章 Unix域协议
#include <sys/un.h> struct sockaddr_un { sa_family_t sun_family; /* AF_LOCAL */ char sun_path[104]; /*可能是92~108*/ }; #include <sys/socket.h> //创建两个连接起来的Unix域套接字 int socketpair(int family/*AF_LOCAL*/, int type, int protocol/*0*/, int sockfd
_gongluck
2018-03-09
5140
第11章 名字与地址转换
域名系统(Domain Name System,DNS)主要用于主机名字与IP地址之间的映射。 #include <netdb.h> const char *hstrerror(int err); //全局h_errno被设置错误信息 struct hostent { char *h_name; //地址的正式名称 char **h_aliases; //地址的预备名称的指针 int h_addrtype; //地址类型 int h_length; //地址
_gongluck
2018-03-09
7680
第8章 基本UDP套接字编程
客户端: #include "../Gnet.h" void do_client(int udpfd, struct sockaddr* pserver_addr, socklen_t server_addr_len) { char buf[MAX_LINE]; int nread; while(fgets(buf, MAX_LINE, stdin) != NULL) { sendto(udpfd, buf, strlen(buf), 0, pserv
_gongluck
2018-03-09
7590
第7章 套接字选项
这一章是一个无比巨大的巨坑!!! 套接字选项相关函数: #include <sys/socket.h> int getsockopt(int sock, int level, int optnam
_gongluck
2018-03-09
5550
第6章 I/O复用:select和poll函数
I/O复用:一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个I/O条件就绪,它就通知进程。 同步I/O:导致请求的进程阻塞,直到I/O操作完成。 异步I/O:不导致请求进程阻塞。 I/O
_gongluck
2018-03-09
7270
UNPv13:#第5章#TCP客户/服务器程序示例
Code github //server.c #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <signal.h> #include <wait.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> void sig_chld(int signo)
_gongluck
2018-03-09
6830
UNPv13:#第3章#套接字编程简介
IPv4套接字地址结构 POSIX规范只要求3个字段:sin_family、sin_addr和sin_port。 #include <netinet/in.h> struct sockaddr_in { uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; ... }; 通用套接
_gongluck
2018-03-09
7400
跟我一起写Makefile
makefile 介绍 make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序。 首先,我们用一个示例来说明makefile的书写规则。以便给大家一个感性认识。这个示例来源于gnu的make使用手册,在这个示例中,我们的工程有8个c文件,和3个头文件,我们要写一个makefile来告诉make命令如何编译和链接这几个文件。我们的规则是: 1)如果这个工程没有编译过,那么我们的所有c文件都要编译并被链接。 2)如果这个工程的某几个c文件被修改,那么我们只编译被修改的c文件
_gongluck
2018-03-08
1K0
Brpc学习:简单回显服务器/客户端
sudo apt-get install git g++ make libssl-dev sudo apt-get install realpath libgflags-dev libprotobuf-dev libprotoc-dev protobuf-compiler libleveldb-dev sudo apt-get install libsnappy-dev sudo apt-get install gperf sudo apt-get install libgoogle-perftools-
_gongluck
2018-03-08
11.6K0
linux平台下的写文件刷新
c语言libc库自带的fflush和linux的sync、fsync、fdatasync,字面上都是刷新缓冲区数据到磁盘(当然,fflush还可以刷新缓冲区数据到标准输入、输出以及错误输出)。下面就分析一下上面提到的四个函数的区别。 一、c语言fflush和linux的sync、fsync、fdatasync的区别 1.接口基本不同 fflush是libc库中提供的函数,平台无关,只有在你使用到c语言的标准文件(FILE)操作时,才涉及fflush。 sync、fsync、fdatasync是系统提
_gongluck
2018-03-08
3.9K0
搭建 FTP 文件服务
安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 apt-get 安装 vsftpd: sudo apt-get install vsftpd -y vsftpd 是在 Linux 上被广泛使用的 FTP 服务器,根据其[官网介绍][https://security.appspot.com/vsftpd.html],它可能是 UNIX-like 系统下最安全和快速的 FTP 服务器软件。 启动 VSFTPD 安装完成后 VSFTPD 会自动启动,通过 netsta
_gongluck
2018-03-08
5.3K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档