随笔分类 -  unix网络编程

摘要:网络编程中,使用多路IO复用的典型场合:1.当客户处理多个描述字时(交互式输入以及网络接口),必须使用IO复用。2.一个客户同时处理多个套接口。3.一个tcp服务程序既要处理监听套接口,又要处理连接套接口,一般需要用到IO复用。4.如果一个服务器既要处理TCP,又要处理UDP,一般也需要用到IO复用。5.如果一个服务器要处理多个服务或者多个协议,一般需要用到IO复用。linux提供了select、poll、epoll等方法来实现IO复用,三者的原型如下:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptf 阅读全文
posted @ 2013-11-15 08:41 mkdir 阅读(1196) 评论(0) 推荐(3)
摘要:/*Linux网络编程(五)——多路IO复用之select()网络编程中,使用IO复用的典型场合:1.当客户处理多个描述字时(交互式输入以及网络接口),必须使用IO复用。2.一个客户同时处理多个套接口。3.一个tcp服务程序既要处理监听套接口,又要处理连接套接口,一般需要用到IO复用。4.如果一个服务器既要处理TCP,又要处理UDP,一般也需要用到IO复用。5.如果一个服务器要处理多个服务或者多个协议,一般需要用到IO复用。*//***********************************************************************本程序功能:使用单进程为 阅读全文
posted @ 2013-11-14 08:45 mkdir 阅读(833) 评论(0) 推荐(0)
摘要:在linux网络编程【1-3】中,我们编写的网络程序仅仅是为了了解网络编程的基本步骤,实际应用当中的网络程序并不会用那样的。首先,如果服务器需要处理高并发访问,通常不会使用linux网络编程(三)中那样的多进程方式,因为那样相当耗系统资源。实际当中,网络程序多使用select、poll、epoll等多路IO复用来进行编写。在进入主题之前,我们先来了解一下linux的IO模型。现有的linux IO模型有5种:阻塞式IO模型,非阻塞式IO模型,IO复用模型,信号驱动式IO模型,异步IO模型。关于阻塞、非阻塞、同步、异步,甚至并发等待,这些概念一直没有很好的理解,特意翻阅一些资料和博文,汇总如下: 阅读全文
posted @ 2013-10-30 15:40 mkdir 阅读(685) 评论(0) 推荐(0)
摘要:Linux网络编程(三) wait()还是waitpid()Linux网络编程(二)存在客户端断开连接后,服务器端存在大量僵尸进程。这是由于服务器子进程终止后,发送SIGCHLD信号给父进程,而父进程默认忽略了该信号。为避免僵尸进程的产生,无论我们什么时候创建子进程时,主进程都需要等待子进程返回,以便对子进程进行清理。为此,我们在服务器程序中添加SIGCHLD信号处理函数。代码如下:#include #include #include #include #include #include #include #include #include #define SERV_PORT 1113#def 阅读全文
posted @ 2013-10-30 08:27 mkdir 阅读(1299) 评论(2) 推荐(4)
摘要:Linux网络编程(二) 使用多进程实现服务器并发访问。采用多进程的方式实现服务器的并发访问的经典范例。程序实现功能:1.客户端从标准输入读入一行文字,发送到服务器.2.服务器接收到客户端发来的文字后,原样返回给客户端.3.客户端接收到服务器的发来的文字后,输出到标准输出,然后继续以上步骤。服务器端过程:建立好监听套接字后,等待客户端的连接,接收到一个连接后,创建一个子进程来与客户端进行通信,主进程则继续等待其他客户端的连接。代码如下:#include #include #include #include #include #include #include #include #include 阅读全文
posted @ 2013-10-29 20:32 mkdir 阅读(1144) 评论(3) 推荐(2)
摘要:一.概念介绍网络程序分为服务端程序和客户端程序。服务端即提供服务的一方,客户端为请求服务的一方。但实际情况是有些程序的客户端、服务器端角色不是这么明显,即互为客户端和服务端。我们编写网络程序时,一般是基于TCP协议或者UDP协议进行网络通信的。TCP:(Transfer Control Protocol)传输控制协议是一种面向连接的协议, 当我们的网络程序使用这个协议的时候,网络可以保证我们的客户端和服务端之间的传输是可靠的。UDP:(User Datagram Protocol)用户数据报协议是一种非面向连接的协议, 这种协议并不能保证我们的网络程序的连接是可靠的。我们编写的网络程序具体采用 阅读全文
posted @ 2013-10-26 12:33 mkdir 阅读(1389) 评论(2) 推荐(2)