学习ipc
文章平均质量分 74
macky0668
这个作者很懒,什么都没留下…
展开
-
Linux netstat命令详解
Linux netstat命令详解简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o转载 2013-06-25 16:20:51 · 3749 阅读 · 0 评论 -
Linux 的多线程编程的高效开发经验
Linux 的多线程编程的高效开发经验文档选项打印本页将此页作为电子邮件发送级别: 中级杨 奕 (yangyish@cn.ibm.com), 软件工程师转载 2009-09-21 13:14:00 · 1085 阅读 · 0 评论 -
TCP连接的状态转换图深度剖析
<h3 class=" authorship_author ">TCP连接的状态转换图深度剖析 对于平时我需要观察LVS与Client及RS之间TCP连接建立情况,你就需要深入了解一下建立连接的TCP三次握手和关闭连接的四次握手,举下面一个例子,你知道这些状态表示什么吗,下面的TCP连接状态图可以让你明白这一切,往下看吧root@LG181:/us转载 2009-09-29 14:09:00 · 3248 阅读 · 2 评论 -
浅谈网络游戏的设计——服务器端编程
浅谈网络游戏的设计——服务器端编程本游戏服务器端操作系统采用UNIX,因为UNIX是标准的服务器操作系统,可保证网络游戏的稳定性。因此,以下所有的编程都将针对UNIX进行。 服务器端的整体构架如下:通讯模块,消息传递模块,游戏规则模块,线程管理模块,游戏世界管理模块。 通讯模块: 通讯模块主要实现与客户端的通讯功能,实际转载 2009-09-11 18:03:00 · 7103 阅读 · 1 评论 -
SELECT模型
SELECT模型套接字模式和套接字I/O模型的区别。套接字模式:阻塞套接字和非阻塞套接字。或者叫同步套接字和异步套接字。套接字模型:描述如何对套接字的I/O行为进行管理。Winsock提供的I/O模型一共有五种:select,WSAAsyncSelect,WSAEventSelect,Overlapped,Completion。1:select模型(选择模型)先看一下下面的这句转载 2009-09-11 17:53:00 · 1633 阅读 · 0 评论 -
基于winsock的阻塞和非阻塞通信模型
基于winsock的阻塞和非阻塞通信模型李 峰(电信科学技术第十研究所 陕西 西安 710061) 摘要:在应用程序开发中,经常涉及各式各样的机器的交互通信问题。在Windows操作系统下,可以使用MFC中的CSocket,也可以使用以Windows Api为基础的Winsock等等。本文主要描述了Winsock的两种实现方式,即阻塞方式和非阻塞方式。并对应这两种转载 2009-09-11 17:51:00 · 1634 阅读 · 0 评论 -
Linux IPC 参数设定(zz)
Linux IPC 参数设定(zz)2009-04-11 23:29MSGMNB 每个消息队列的最大字节限制。MSGMNI 整个系统的最大数量的消息队列。MSGGSZ 消息片断的大小(字节)。大于该值的消息被分割成多个片断。 MSGSEG 在单个队列里能存在的最大数量的消息片断。 MSGTQL 整个系统的最大数量的消息。 MSGMAX 单个消息的最大size。在某些操作转载 2009-07-08 16:36:00 · 2663 阅读 · 0 评论 -
UNIX 编程中错误输出的线程安全问题
UNIX 编程中错误输出的线程安全问题在IBM developerworks 里看得的一篇文章,对多线程编程有益。http://www.ibm.com/developerworks/cn/aix/library/0806_xiazq_thread/在多线程的 UNIX 应用程序中,系统调用出错时,错误输出有时可能不会像在单线程系统中那样正确的反应错误所在,因为需要考虑多线程情况下所使用的错转载 2009-08-28 10:14:00 · 801 阅读 · 0 评论 -
Linxu编程 总结
Linux上的C编程。首先考虑的如果是编程环境的话,那么是VIM+GCC+GDB,但是由于现在还是在写“HELLO, WORLD“的阶段,所以CSCOPE之类的工具,作为VIM的IDE补充,并没有发挥用途。说到VIM,必须考虑到我的哲学,就是:如果事先准备好可以使用的东西,并且在以后的实践中使用,那么就容易的转载 2009-08-28 15:06:00 · 910 阅读 · 0 评论 -
errno的启示
errno的启示 一、errno的由来 在C编程中,errno是个不可缺少的变量,特别是在网络编程中。如果你没有用过errno,那只能说明你的程序不够健壮。当然,如果你是WIN32平台的GetLastError(),效果也是一样的。 为什么会使用errno呢?个人认为,这是系统库设计中的一个无奈之举,他更多的是个技巧,而不是架构上的需要。我们观察下函数结构,可以发现,函数的参数返回转载 2009-08-28 14:57:00 · 733 阅读 · 0 评论 -
非阻塞IO处理上几个常见问题
Operation now in progress 原因:把socket设为非阻塞,connect时候就会返回“Operation now in progress”,这表示连接已经在建立但还没有完成,随后加上select来实现connect超时,但理论上不会把该错误信息返回给client,检查发现由于原来api在每次connect没有对errno清0,可能会导致当connect出错时,返回给cli原创 2009-08-28 14:50:00 · 26663 阅读 · 0 评论 -
socket error
Q.为何把文件分成的最大块数限制为10 A.近来发现有的用户对于以为分成的块数愈多速度就愈快,其实不然经过我和其他一些用户的测试,有时更多的快数反而会使得速度下降,较多的快数只是对非常慢的连接有效。并且分成的快数越多,整个网络的负担也越重,有可能导致网络(下载服务器)崩溃。对于较慢的连接建议使用计划下载的功能避开高峰时间(白天不能连接的站点,凌晨确能高速下载)Q.出现"无法解析域名"的提示如何转载 2009-08-28 11:47:00 · 48925 阅读 · 1 评论 -
SOCKET错误代码表
SOCKET错误代码表.Socket error 0 - Directly send error Socket error 10004 - Interrupted function call Socket error 10013 - Permission denied Socket error 10014 - Bad address Socket error 1转载 2009-08-28 10:46:00 · 5125 阅读 · 0 评论 -
Linux 2.6 中的文件锁
Linux 2.6 中的文件锁文档选项打印本页将此页作为电子邮件发送样例代码级别: 初级黄 晓晨 (huangxc@cn.i转载 2009-09-21 11:57:00 · 911 阅读 · 0 评论 -
Linux 多线程应用中如何编写安全的信号处理函数
developerWorks 中国 > Linux >Linux 多线程应用中如何编写安全的信号处理函数 文档选项打印本页将此页作为电子邮件发送转载 2009-09-21 12:04:00 · 1518 阅读 · 0 评论 -
linux进程间通信综述
linux进程间通信综述linux进程间通信主要分为以下4个领域(1)消息传递(管道,FIFO,消息队列)(2)同步(互斥锁,条件变量,读写锁,信号量)(3)共享内存区(匿名共享内存区,有名共享内存区)(4)过程调用(Solaris门,Sun RPC)转载 2011-10-14 09:36:55 · 3570 阅读 · 0 评论 -
linux调试工具ipcs的深入分析
1)system v系统共享内存用ipcs调试共享内存测试源程序如下:#include #include #include #include #include #include #include void error_out(const转载 2011-10-01 20:19:51 · 18496 阅读 · 0 评论 -
Linux TCP 连接数修改
Linux TCP 连接数修改 一、 文件数限制修改(1) vi /etc/security/limits.conf* soft nofile 10240 * hard nofile 10240 (2) vi转载 2011-09-22 23:41:18 · 2266 阅读 · 0 评论 -
fd_set具体是怎样实现的
fd_set具体是怎样实现的原创 2011-03-15 14:58:00 · 2578 阅读 · 0 评论 -
Unix 5种IO模型的图解分析和比较
Unix 5种IO模型的图解分析和比较转载 2010-08-20 13:29:00 · 1466 阅读 · 0 评论 -
RPC远程过程调用实例剖析(转载)
RPC远程过程调用实例剖析(转载)转载 2010-07-29 15:42:00 · 2538 阅读 · 0 评论 -
ulimit和setrlimit轻松修改task进程资源上限值
ulimit和setrlimit轻松修改task进程资源上限值转载 2010-07-27 14:54:00 · 2216 阅读 · 0 评论 -
epoll相关资料整理
epoll相关资料整理 学习epoll有一段时间了,最近终于有一个服务器采用了epoll模型,从中积累了一些epoll的资料.个人感觉目前可以找到的epoll相关的资料太少了,因为epoll仅被linux 2.6以上版本内核所支持,它的应用时间还比较短暂, 而一些讲解网络编程的相关权威书籍(如已逝的stevens的UNP)都没有讲解这个不能跨unix平台的专有技术,而epoll带来的巨大效率提转载 2010-05-25 12:20:00 · 821 阅读 · 0 评论 -
网络编程常见问题总结
网络编程常见问题总结转载 2010-07-12 21:43:00 · 749 阅读 · 0 评论 -
select, poll和epoll的区别
select, poll和epoll的区别select()系统调用提供一个机制来实现同步多元I/O: #include sys/time.h>#include sys/types.h>#include unistd.h>int select (int n,fd_set *readfds,fd_set *writefds,fd_set *excep转载 2010-05-05 16:04:00 · 731 阅读 · 0 评论 -
daemon编程小结
daemon编程小结- - 一.daemon的特点必须由root启动。它是非交互式程序,所以没有控制中断,无须用户输入。不能控制终端,所以无任何输出,因此无论是向stderr还是stdout都需做特别处理。通常作为进程组和会话的领导进程。父进程是init,因为真正的父进程fork以后就exit了,是由init继承的转载 2009-12-29 09:29:00 · 1041 阅读 · 0 评论 -
I/O模式概述
I/O模式概述 阻塞I/O 非阻塞I/O I/O多路复用 信号驱动I/O 异步I/O 五程I/O模式区别图: 阻塞和非阻塞 阻塞函数在完成其指定的任务以前不允许程序调用另一个函数。例如,程序执行一个读数据的函数调用时,在此函数完成读操作以前将不会执行下一程序语句。当服务器运行到accept语句时,而没有客户连接服务请求到来,服务器就会停止在accept语句上等转载 2009-11-03 11:53:00 · 1716 阅读 · 0 评论 -
UDP的无连接
UDP无连接调用bind()后,一个UDP socket是无连接的,是不能调用send()或者write()函数的,因为目的地址不知道;但是sendto()可以调用,因为sendto()可以带int __flags, __CONST_SOCKADDR_ARG __addr,指明对方的IP地址UDP也通过对一个socket调用connect(),来记录目标的IP地址和端口转载 2009-08-27 13:16:00 · 1395 阅读 · 0 评论 -
常见SOCKET错误参数
常见SOCKET错误参数10053:属于软件导致连线终断(10053 Software caused connection abort) 应该是你的某个应用程序在运行的过程中,你进行了非法的操作,软件利用套接字错误. 这属于比较简单的软件故障了,没有什么吓人的,不要担心,把你觉的在系统运行中的,某些不好用的软件现卸载掉,正确的安装一次就可以了.10054是远程主机强迫关转载 2009-06-10 15:19:00 · 44758 阅读 · 1 评论 -
基于面向对象操作系统开发平台(OSKit)的分析与程序设计(4)
线程分析篇之线程调度 本文是《基于面向对象操作系统开发平台(OSKIT)的分析与程序设计》的第四篇,作者将对线程调度进行分析。 线程调度是操作系统内核中的主要内容之一,它对整个操作系统的执行效率至关重要。OSKit当然也包括此项内容,而且由于线程的调度更加频繁,所以这部分在OSKit中的所占的比重要比它在UNIX中大许多。 4.1 线程调度算法分析 4.1.1 线程调度算法转载 2008-10-29 17:04:00 · 686 阅读 · 0 评论 -
基于面向对象操作系统开发平台(OSKit)的分析与程序设计(3)
线程分析篇之线程通信 本文是《基于面向对象操作系统开发平台(OSKIT)的分析与程序设计》的第三篇,作者将对线程通讯进行分析。 众所周知,在Linux中,进程为了能在同一项任务上协调工作,彼此之间必须能够进行通信。例如,在一个shell管道中,第一个进程的输出必须传输到第二个进程,这样沿着管道传递下去。因此在需要通信的进程之间,应该使用一种结构较好的通信方式。 Linux支持许多转载 2008-10-29 17:02:00 · 615 阅读 · 0 评论 -
基于面向对象操作系统开发平台(OSKit)的分析与程序设计(2)
线程分析篇之线程初始化 文是《基于面向对象操作系统开发平台(OSKIT)的分析与程序设计》的第二篇,作者将为我们介绍线程的初始化。 前面我们曾经谈到,在OSKit中资源分配和调度的单位是线程而不是传统意义上的进程,所以我们有必要花大量的时间对其线程机制做全面的分析。当然,要分析线程部分,首先应该从线程的初始化入手,然后才能涉及到线程间的通信以及线程调度,所以本章将向各位全面系统地介绍O转载 2008-10-29 17:00:00 · 799 阅读 · 0 评论 -
基于面向对象操作系统开发平台(OSKit)的分析与程序设计(1)
作者:汤海京 前言及绪论 《基于面向对象操作系统开发平台(OSKit)的分析与程序设计》是我们奉献给读者的一个新专栏。本专栏的作者汤海京将向大家系统地介绍OSKit的线程机制,主要论述了三大部分内容,它们是:线程通讯,线程初始化和线程调度。希望读者能在最短的时间内了解OSKit。本文是第一篇《前言及绪论》。 前言 如果说自由软件的出现是一个偶然的话,那么,席卷全球的Linux热转载 2008-10-29 16:59:00 · 750 阅读 · 0 评论 -
Linux下通用线程池的构建
本文源代码请到http://asp.6to23.com/vcprogram/source/sourcefile/linuxpool.rar 下载Linux下通用线程池的创建与使用本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出转载 2008-10-29 14:31:00 · 730 阅读 · 0 评论 -
如何在linux/unix中设置线程的优先级
在linux下我们可以通过int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine)(void*), void *arg);来创建线程,但是如何设置线程的优先级呢?在讨论这个问题的时候,我们先要确定当前线程使用的调度策略,posix提供了int pthread_attr_转载 2008-10-29 14:25:00 · 923 阅读 · 0 评论 -
linux 线程概述
一.基础知识:线程和进程 按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。 无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,如果进程运行在转载 2008-10-29 14:23:00 · 644 阅读 · 0 评论 -
线程编程基本知识介绍
线程编程基本知识介绍线程编程基本知识介绍,常用线程函数列举同进程相比,线程的应用比较复杂,如线程信号量的控制,线程属性的处理,同时还应注意哪些系统函数对线程来说是安全的,象exit()这样的系统调用在线程函数处理中是不能存在的。这篇文章只介绍线程编程最基本的部分及编程框架,更详细的部分请参考POSIX编程指南。AIX支持以下的线程标准:1) Single UNIX Sp转载 2008-10-29 14:21:00 · 848 阅读 · 0 评论 -
Proxy源代码分析--谈谈如何学习linux网络编程
Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到,Linux和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这应该是Windows的优点)相比,后者无疑在易操作性上更胜一筹。但是为什么又有那么多的爱好者钟情于Linux呢,当然自由是最吸引人的一点,另外Linux强大的功能也是一个非常重要的原因,尤其是Linux强大的网络功能更是引人注转载 2008-10-27 17:06:00 · 560 阅读 · 0 评论 -
Linux下的多线程编程
Linux下的多线程编程 本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00) 我看着总结得很好,转过来了 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix 也支持线程的概念,但是在一个进程(pr转载 2008-10-27 16:33:00 · 754 阅读 · 0 评论 -
Select()系统调用及文件描述符集fd_set的应用
在网络程序中,一个进程同时处理多个文件描述符是很常见的情况。select()系统调用可以使进程检测同时等待的多个I/O设备,当没有设备准备好时,select()阻塞,其中任一设备准备好时,select()就返回。select()的调用形式为:#include ;#include ;int select(int maxfd, fd_set *readfds, fd_set *writefds, f转载 2008-10-27 16:36:00 · 707 阅读 · 0 评论