![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UNIX网络编程
文章平均质量分 65
Zaki_huang
新主页http://www.jianshu.com/u/18dc720a508b
展开
-
实现高并发服务器三种简化模型 线程 进程 IO复用
知识点:UNIX网络编程第四章, 第五章,第六章多进程模型: #include#include#include#include#include#include#include#include#define SERV_PORT 3000#define MAXLINE 1024void str_echo(int sockfd){ ssize_t n; char b原创 2016-05-24 18:30:19 · 539 阅读 · 0 评论 -
UNIX网络编程 TCP套接字选项
一直想写一下TCP通信的事, 套接字选项: SO_DEBUG:当给一个TCP套接字开启本选项时, 内核将为TCP在该套接字发送和接收的所有分组保留详细跟踪信息。 SO_DONTROUTE:本选项规定外出的分组将绕过底层协议的正常路由机制。 SO_KEEPALIVE:本选项的功用是检测对端主机是否崩溃或变得不可达。 SO_LINGER :顾名思义是延迟延缓的意思,这里是延缓面向连接的soc原创 2017-01-10 11:43:32 · 598 阅读 · 0 评论 -
TCP epoll模型
待续原创 2017-01-16 15:53:39 · 270 阅读 · 0 评论 -
TCP的那些事儿(下)
这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资转载 2017-01-10 09:24:30 · 346 阅读 · 0 评论 -
TCP 的那些事儿(上)
TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相转载 2017-01-10 09:22:47 · 220 阅读 · 0 评论 -
UNIX多线程编程(4) 线程私有变量
线程除了共享变量之外,有时候我们需要线程有自己独立的变量。原创 2017-01-06 16:17:08 · 217 阅读 · 0 评论 -
UNIX多线程编程(3) 线程同步
好了,这篇讲解多线程的同步问题。 互斥是同步的一种,linux下提供了多种方式来处理线程同步,最常用的是互斥量,条件变量和信号量。本文首先使用互斥锁,信号量来实现同步版本,然后在深层次的分析下互斥锁和信号量的实现机制和原理。#include<stdio.h>#include<stdlib.h>#include<pthread.h>#include <unistd.h>#include <s原创 2017-01-04 22:30:54 · 391 阅读 · 0 评论 -
UNIX多线程编程(1) 创建多线程
线程概念 线程是指运行中的程序的调度单位。一个线程指的是进程中一个单一顺序的控制流,也被称为轻量级线程。它是系统独立调度和分配的基本单位。同一进程中的多个线程将共享该系统中的全部系统资源,比如文件描述符和信号处理等。一个进程可以有很多线程,每个线程并行执行不同的任务。 线程与进程比较 ① 和进程相比,它是一种非常“节俭”的多任务操作方式。在Linux系统中,启动一个新的进程必须原创 2017-01-04 17:51:05 · 574 阅读 · 0 评论 -
UNIX多线程编程(2) 线程互斥
本文接着上篇《UNIX多线程编程(1)》讲解多线程的同步与互斥问题。 首先来看下关于线程同步互斥的概念性的知识,相信大家通过前面的文章,已经对线程同步互斥有一定的认识了,也能模糊的说出线程同步互斥的各种概念性知识,下面再列出从《计算机操作系统》一书中选取的一些关于线程同步互斥的描述。相信先有个初步而模糊的印象再看下权威的定义,应该会记忆的特别深刻。1.线程(进程)同步的主要任务答:在引入多线程后,原创 2017-01-04 22:25:58 · 451 阅读 · 0 评论 -
高并发服务器关键技术之线程池
知识点:UNIX网络编程30章 ,UNIX网络编程26章书上30.12有一个预先创建线程服务器程序的例子,虽然比较简单,但是流程很清晰。Thread可看作是一个线程结构,不过书上只有两个变量,等下后面一个复杂点的程序在线程结构上加了很多的内容: typedef struct tp_thread_info_s { pthread_t thread_id; //thr原创 2016-05-30 17:22:05 · 563 阅读 · 0 评论 -
poll&&epoll实现分析(二)——epoll实现
本博文来自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4238524&uid=28541347Epoll实现分析——作者:lvyilong316通过上一章分析,poll运行效率的两个瓶颈已经找出,现在的问题是怎么改进。首先,如果要监听1000个fd,每次poll都要把1000个fd 拷入内核,太不科学了,内转载 2017-04-07 13:34:04 · 335 阅读 · 0 评论