博客专栏  >  编程语言   >  Linux 环境编程深入

Linux 环境编程深入

文件 I/O{Linux系统调用, Linux C库函数}; 进程{进程环境, 进程控制, 进程关系, 守护进程}; 信号; 线程{线程创建, 线程控制}; 高级I/O; 进程间通信{ System V IPC, Posix IPC}; Socket

关注
63 已关注
57篇博文
  • Socket编程实践(13) --UNIX域协议

    UNIX域协议   UNIX域套接字与TCP相比, 在同一台主机上, UNIX域套接字更有效率, 几乎是TCP的两倍(由于UNIX域套接字不需要经过网络协议栈,不需要打包/拆包,计算校验和,维护序号和...

    2015-03-14 20:56
    3131
  • Socket编程实践(12) --UDP编程基础

    UDP特点   无连接,面向数据报(基于消息,不会粘包)的数据传输服务;   不可靠(可能会丢包, 乱序, 重复), 但因此一般情况下UDP更加高效;UDP客户/服务器模型  UDP-API使用#in...

    2015-03-14 20:34
    2377
  • Socket编程实践(10) --select的限制与poll的使用

    select的限制用select实现的并发服务器,能达到的并发数一般受两方面限制:1)一个进程能打开的最大文件描述符限制。这可以通过调整内核参数。可以通过ulimit -n(number)来调整或者使...

    2015-03-14 20:21
    2573
  • Socket编程实践(9) --套接字IO超时设置方法

    引:超时设置3种方案1. alarm超时设置方法//代码实现: 这种方式较少用 void sigHandlerForSigAlrm(int signo) { return ; } signa...

    2015-03-14 19:53
    2703
  • Socket编程实践(8) --Select-I/O复用

    五种I/O模型介绍(1)阻塞I/O[默认]   当上层应用App调用recv系统调用时,如果对等方没有发送数据(Linux内核缓冲区中没有数据),上层应用Application1将阻塞;当对等方发送了...

    2015-03-14 15:32
    3200
  • Socket编程实践(6) --TCP服务端注意事项

    僵尸进程处理1)通过忽略SIGCHLD信号,避免僵尸进程    在server端代码中添加    signal(SIGCHLD, SIG_IGN); 2)通过wait/waitpid方法,解决僵尸进程...

    2015-03-14 15:22
    2365
  • Socket编程实践(5) --TCP粘包问题与解决

    TCP粘包问题由于TCP协议是基于字节流且无边界的传输协议, 因此很有可能产生粘包问题, 问题描述如下   对于Host A 发送的M1与M2两个各10K的数据块, Host B 接收数据的方式不确定...

    2015-03-14 15:47
    2922
  • Socket编程实践(4) --多进程并发server

    1.Socket地址复用int getsockopt(int sockfd, int level, int optname, void *optval, socklen_...

    2015-03-14 15:07
    3071
  • Socket编程实践(3) --Socket API

    socket函数#include #include int socket(int domain, int type, int protocol);创建一个套接字用于通信参数:   domain:指...

    2015-03-14 12:24
    2611
  • Socket编程实践(2) --Socket编程导引

    什么是Socket?    Socket可以看成是用户进程与内核网络协议栈的接口(编程接口, 如下图所示), 其不仅可以用于本机进程间通信,可以用于网络上不同主机的进程间通信, 甚至还可以用于异构系统...

    2015-03-14 12:10
    2883
  • Socket编程实践(1) --TCP/IP简述

    ISO的OSI    OSI(open system interconnection)开放系统互联模型是由ISO国际标准化组织定义的网络分层模型,共七层, 从下往上为:OSI七层参考模型物理层(Phy...

    2015-03-14 11:50
    3605
  • Socket编程实践(11) --epoll原理与封装

    常用模型的特点    Linux 下设计并发网络程序,有典型的Apache模型(Process Per Connection,PPC), TPC(Thread Per Connection)模型,以及...

    2015-03-11 22:23
    3397
  • Socket编程实践(7) --Socket-Class封装(改进版v2)

    本篇博客定义一套用于TCP通信比较实用/好用Socket类库(运用C++封装的思想,将socket API尽量封装的好用与实用), 从开发出Socket库的第一个版本以来, 作者不知道做了多少改进, ...

    2015-03-10 20:54
    3216
  • Linux多线程实践(10) --使用 C++11 编写 Linux 多线程程序

    在这个多核时代,如何充分利用每个 CPU 内核是一个绕不开的话题,从需要为成千上万的用户同时提供服务的服务端应用程序,到需要同时打开十几个页面,每个页面都有几十上百个链接的 web 浏览器应用程序,从...

    2015-02-19 19:09
    2742
  • Linux多线程实践(9) --简单线程池的设计与实现

    线程池的技术背景   在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。...

    2015-02-19 18:15
    3574
  • Linux多线程实践(8) --Posix条件变量解决生产者消费者问题

    Posix条件变量int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr); int pthread_con...

    2015-02-19 18:02
    2906
  • Linux多线程实践(7) --多线程排序对比

    屏障int pthread_barrier_init(pthread_barrier_t *restrict barrier, const pthre...

    2015-02-19 17:51
    3152
  • Linux多线程实践(6) --Posix读写锁解决读者写者问题

    Posix读写锁int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pth...

    2015-02-19 17:44
    2904
  • Linux多线程实践(5) --Posix信号量与互斥量解决生产者消费者问题

    Posix信号量Posix 信号量有名信号量无名信号量sem_opensem_initsem_closesem_destroysem_unlink sem_waitsem_post 有名信号量#inc...

    2015-02-19 17:24
    2571
  • Linux多线程实践(4) --线程特定数据

    线程特定数据int pthread_key_create(pthread_key_t *key, void (*destr_function) (void *)); int pthread_key_d...

    2015-02-19 17:11
    2426
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部