本节我们接着介绍另外的几种TCP客户-服务器程序;
第四种:TCP并发服务器,每个客户一个子线程
在我们前面的并发服务器程序例子中可以看出:父进程接受连接,派生子进程,子进程处理与客户的交互。
这种模式的问题:
fork()是昂贵的。内存映像要从父进程拷贝到子进程,所有描述字要在子进程中复制等等。
fork()子进程后,需要用进程间通信在父子进程之间传递信息。
一个进程中的所有线程共享...
分类:
其他好文 时间:
2015-07-12 11:22:11
阅读次数:
140
第五种 TCP预先派生子进程服务器程序:
对预先派生子进程服务器的最后一种改动就是由父进程调用accept,然后再将所接受的已连接描述字传递给子进程。父进程必须跟踪子进程的忙闲状态,以便给空闲子进程传递新的描述字。为每个子进程维护一个信息结构,用来管理各子进程。
在调用fork之前,先创建一个字节流管道(Unix域的字节流套接口),它是Unix域的字节流套接口。当子进程派生后...
分类:
其他好文 时间:
2015-07-12 11:21:54
阅读次数:
127
一,到http://download.csdn.net/detail/ts173383201/4505201去下载源代码,然后解压;
二,cd到你解压后的文件夹下,就是有configure的那个目录下,执行命令./configure;
三,执行cd lib跳到lib目录下,执行make命令,会在上层目录(就是刚才有configure那个目录)生成libunp.a文件
四,复制这个静态库lib...
分类:
其他好文 时间:
2015-07-12 11:20:29
阅读次数:
170
1. 基本TCP客户/服务器程序的套接字函数 2. socket函数 为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型。其定义如下:#include int socket(int family, int type, int protocol...
分类:
其他好文 时间:
2015-07-01 20:18:11
阅读次数:
200
Linux Socket编程一、Socket编程具体函数解析参考网址http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html(本文转载于此网址,转载请注明源链接)二、Socket编程的基本知识2.1 基本TCP客户/服务器程序套接字函...
分类:
系统相关 时间:
2015-05-12 20:44:02
阅读次数:
316
1. TCP回射服务器程序:main函数
#include "unp.h"
int main(int argc, char **argv)
{
int listenfd, connfd;
pid_t childpid;
socklen_t clilen;
struct sockaddr_in cliaddr, servaddr;
listenfd = Socket(AF_INET,...
分类:
其他好文 时间:
2015-04-26 16:50:44
阅读次数:
146
写在开头:
在上一节中我们学习了一些基础的用来支持网络编程的API,包括“套接字的地址结构”、“字节排序函数”等。这些API几乎是所有的网络编程中都会使用的一些,对于我们正确的编写网络程序有很大的作用。在本节中我们会介绍编写一个基于TCP的套接字程序需要的一些API,同时会介绍一个完整的TCP客户服务器程序,虽然这个程序功能相对简单,但确包含了一个客户服务器程序所有的步骤,一些复杂的程序也都是在...
引言:
套接字编程其实跟进程间通信有一定的相似性,可能也正因为此,stevens这位大神才会将套接字编程与进程间的通信都归为“网络编程”,并分别写成了两本书《UNP1》《UNP2》。TCP套接字编程是套接字编程中非常重要的一种,仔细分析,其实它的原理并不复杂。现在就以一个例子来详细分析TCP套接字编程。
一、示例要求:
本节中试着编写一个完成的TCP客户/服务器程序示例,并对它进行深...
分类:
其他好文 时间:
2014-06-24 20:59:53
阅读次数:
248
上一节给出了TCP网络编程的函数,这一节使用那些基本函数编写一个完成的TCP客户/服务器程序示例。
该例子执行的步骤如下:
1、客户从标准输入读入一行文本,并写给服务器。
2、服务器从网络输入读入这行文本,并回射给客户。
3、客户从网络输入读入这行回射文本,并显示在标准输出上。
用图描述如下:
编写TCP回射服务器程序如下:
#include
#include
#incl...
分类:
其他好文 时间:
2014-06-22 11:34:38
阅读次数:
180