命名管道与邮件槽机制的比较

命名管道与邮件槽机制的比较
命名管道与邮件槽机制的比较

二,邮件槽与命名管道对比试验

1实验内容

编写程序,要求在客户端的命令行输入字符串并回车客户端把字符串发送到服务器,服务器再把收到的字符串传回客户端,通过命名管道及邮件槽方式完成,分析两种方式的利弊。

2试验目的

深入理解共享存储与消息传递的进程通信。

3试验原理

命名管道

命名管道(Named Pipe)是服务器进程和一个或多个客户进程之间通信的单向或双向管道。不同于匿名管道的是:命名管道可以在不相关的进程之间和不同计算机之间使用,服务器建立命名管道时给它指定一个名字,任何进程都可以通过该名字打开管道的另一端,根据给定的权限和服务器进程通信。命名管道提供了相对简单的编程接口,使通过网络传输数据并不比同一计算机上两进程之间通信更困难,不过如果要同时和多个进程通信它就力不从心了。

邮件槽

邮件槽(Mailslots)提供进程间单向通信能力,任何进程都能建立邮件槽成为邮件槽服务器。其它进程,称为邮件槽客户,可以通过邮件槽的名字给邮件槽服务器进程发送消息。进来的消息一直放在邮件槽中,直到服务器进程读取它为止。一个进程既可以是邮件槽服务器也可以是邮件槽客户,因此可建立多个邮件槽实现进程间的双向通信。

通过邮件槽可以给本地计算机上的邮件槽、其它计算机上的邮件槽或指定网络区域中所有计算机上有同样名字的邮件槽发送消息。广播通信的消息长度不能超过400字节,非广播消息的长度则受邮件槽服务器指定的最大消息长度的限制。邮件槽与命名管道相似,不过它传输数据是通过不可靠的数据报(如TCP/IP 协议中的UDP包)完成的,一旦网络发生错误则无法保证消息正确地接收,而命名管道传输数据则是建立在可靠连接基础上的。不过邮件槽有简化的编程接口和给指定网络区域内的所有计算机广播消息的能力,所以邮件槽不失为应用程序发送和接收消息的另一种选择。

传输安全性:

由于邮槽是围绕一个广播通信体系设计出来的,所以当然不能指望能通过它实现数据的"可靠"传输;

优缺点:

邮槽最大的一个缺点便是只允许从客户机到服务器,建立一种不可靠的单向数据通信。

而另一方面,邮槽最大的一个优点在于,它们使客户机应用能够非常容易地将广播消息发给一个或多个服务器应用。

4程序源代码

命名管道服务器代码:

{

string m_sMessage;

char buffer[1024];

DWORD ReadNum;

HANDLE m_hPipe = CreateNamedPipe("\\\\.\\Pipe\\Test",PIPE_ACCESS_DUPLEX,PIPE_TYPE_BYTE|PIPE_READ MODE_BYTE,1,0,0,1000,NULL);

cout<<"~命名管道服务器界面~\n\n\n";

if(m_hPipe==INVALID_HANDLE_VALUE)

{

m_sMessage="创建命名管道失败!";

cout<

return 0;

}

else

{

m_sMessage="成功创建命名管道!";

cout<

}

if(ConnectNamedPipe(m_hPipe,NULL)==FALSE)

{

CloseHandle(m_hPipe);

m_sMessage="与客户机建立连接失败!";

return 0;

}

else

{

m_sMessage="与客户机连接成功!";

cout<

while(true)

{

if(ReadFile(m_hPipe,buffer,sizeof(buffer),&ReadNum,NULL)==FALSE)

{

CloseHandle(m_hPipe);

cout<<"读取失败!"<

return 0;

}

else

{

cout<<"来自客户端的数据为:";

buffer[ReadNum]='\0';

cout<

cout<<"向客户端回发数据"<

if(WriteFile(m_hPipe,buffer,strlen(buffer),&ReadNum,NULL)==FALSE)

{

cout<<"数据发送失败!"<

}

else

{

cout<<"数据发送成功"<

}

}

}

}

if(DisconnectNamedPipe(m_hPipe)==FALSE)

{

m_sMessage="终止连接失败!";

cout<

}

else

{

CloseHandle(m_hPipe);

m_sMessage="成功终止连接!";

cout<

}

return 0;

}

命名管道客户端代码:

{

char message[1000] ;

DWORD WriteNum;

cout<<"~命名管道客户端界面~\n\n\n";

if(WaitNamedPipe("\\\\.\\Pipe\\Test",NMPWAIT_WAIT_FOREVER)==FALSE)

{

cout<<"等待连接失败!"<

return 0;

}

HANDLE hPipe =CreateFile("\\\\.\\Pipe\\Test",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL,NULL);

if(hPipe==INVALID_HANDLE_VALUE)

{

cout<<"管道打开失败!"<

return 0;

}

else

{

cout<<"成功打开管道"<

}

cout<<"请输入要写的数据"<

while(true)

{

cin>>message;

if(WriteFile(hPipe,message,strlen(message),&WriteNum,NULL)==FALSE)

{

cout<<"数据写入失败!"<

}

else

{

cout<<"数据写入成功"<

cout<<"接收来自服务器的数据"<

if(ReadFile(hPipe,message,sizeof(message),&WriteNum,NULL)==FALSE)

{

CloseHandle(hPipe);

cout<<"读取失败!"<

return 0;

}

else

{

cout<<"来自服务器的数据为:";

message[WriteNum]='\0';

cout<

}

}

}

CloseHandle(hPipe);

return 0;

}

邮件槽服务器代码

{

char Display[100];

HANDLE mySlot;

HANDLE Slot;

DWORD nextSize;

DWORD msg;

DWORD NumByteRead;

BOOL stat;

mySlot= CreateMailslot("\\\\.\\mailSlot\\myslot",0,0,NULL);

if(mySlot==INVALID_HANDLE_VALUE)

{

cout<<"建立邮槽失败";

return(1);

}

while(1)

{

stat=GetMailslotInfo(mySlot,NULL,&nextSize,&msg,NULL);

if(!stat)

{

CloseHandle(mySlot);

return(1);

}

if(msg)

{

if(!ReadFile(mySlot,Display,nextSize,&NumByteRead,NULL))

{

CloseHandle(mySlot);

return(1);

}

cout<<"~ ~ ~ ~ ~ ~ 服务器界面~~~~~~~~"<

cout<<"来自客户机端的数据为:\n";

cout<

cout<<"向客户机回发数据"<

Slot

=CreateFile("\\\\.\\mailslot\\slot",GENERIC_WRITE,FILE_SHARE_READ,

NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL);

if(Slot==INVALID_HANDLE_VALUE)

{

cout<<"文件不能打开!";

return(1);

}

while(1)

{

stat=WriteFile(Slot,Display,(DWORD)strlen(Display)+1,&NumByteRead,(LPOVERLAPPE D)NULL);

cout<<"发送成功"<

CloseHandle(Slot);

return(1);

}

}

}

}

邮件槽客户端代码:

{

char Sendtext[100];

DWORD len=100;

HANDLE mySlot;

HANDLE Slot;

DWORD nextSize;

DWORD msg;

BOOL stat;

DWORD NumByteWritten;

mySlot =CreateFile("\\\\.\\mailslot\\myslot",GENERIC_WRITE,FILE_SHARE_READ, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL);

if(mySlot==INVALID_HANDLE_VALUE)

{

cout<<"文件不能打开!";

return(1);

}

cout<<"~~~~~~~客户机界面~~~~~~~~~~~"<

while(1)

{

cout<<"请输入要发送的数据"<

cin>>Sendtext;

stat=WriteFile(mySlot,Sendtext,(DWORD)strlen(Sendtext)+1,&NumByteWritten,(L POVERLAPPED)NULL);

cout<<"向服务器发送成功"<

Slot= CreateMailslot("\\\\.\\mailSlot\\slot",0,0,NULL);

if(Slot==INVALID_HANDLE_VALUE)

{

cout<<"建立邮槽失败";

return(1);

}

while(1)

{

stat=GetMailslotInfo(Slot,NULL,&nextSize,&msg,NULL);

if(!stat)

{

CloseHandle(Slot);

return(1);

}

if(msg)

{

if(!ReadFile(Slot,Sendtext,nextSize,&NumByteWritten,NULL))

{

CloseHandle(Slot);

return(1);

}

cout<<"来自服务器端的数据为:\n";

cout<

}

}

}

}

5程序运行结果及说明:

命名管道客户端界面:

命名管道服务器界面:

邮件槽服务器界面

客户机界面

6小结

邮槽最大的一个缺点便是只允许从客户机到服务器,建立一种不可靠的单向数据通信,不能指望能通过它实现数据的"可靠"传输;要建立双向连接客户端也需要建立邮件槽来接收数据,而另一方面,邮件槽最大的一个优点在于,它们使客户机应用能够非常容易地将广播消息发给一个或多个服务器应用。要想保证各种Windows平台之间能够完全正常地通信,强

烈建议将消息长度限制在424字节,或者更短。

如果进行面向连接的传输,可考虑使用命名管道,而不是简单的邮件槽,命名管道是面向连接的传输,可以传输比较大的文件。

松山湖管线数据制作标准

松山湖管线数据制作标准 松山湖规划建设局 广州城市信息研究所有限公司 二零零五年十一月

目录 1探测数据的提交 (2) 2数据分层规定 (5) 3管线数据结构 (9) 4.管线点符号图例与代码 (13) 附录A地下管线的代号和颜色 (15)

1 探测数据的提交 1.1地下管线探测单位使用的电子记录手簿及成图软件可自行选定,但提供的数 据文本必须符合本章规定的要求,附录有探测数据记录表格。 1.2探测成果以每次测量为单位,提交数据文本,同时采用电子格式,数据为 AUTOCAD 2000格式。 1.3同一次测量的数据按一次提交。 1.4提交数据成果时,必须先消除数据矛盾。 1.5勘测单位提交的数据文本电子格式建议为:以access的*.mdb格式存贮的地 下管线数据库文件,如无法采用电子格式可采用纸质文本记录。 1.6数据文本格式 (1) 采用纸张提交 (2) 如果采用电子格式,管线数据库以一次探测为单位提交,命名方式为 xx.mdb XX为文件号. xx.mdb 文件包括管线点属性表和管线线段表,按不同管类分别成表,同时也用于存贮测区描述信息表。表命名如下表所列,数据结构参见相关条款。 1.7 提交数据的说明 (1)各种管线点符号代码参见管线点符号图例与代码。 (2)管线线段表用于建立管线之间的连接关系,包括: 现状管线的连接关系;空管(预埋管)的连接关系。空管在图面上以虚线表示;“一井多盖”、“一井多阀门”的窨井进出点及井内各点的连接关系。 (3)有两个以上入口(多井盖)的电信检修井和一井多阀门(附属物)的窨井按比例实测井位,以虚线表示井位轮廓,轮廓几何中心加注相 应的窨井符号或阀门井符号(称为虚拟窨井符号),颜色采用相应管 线的颜色,在管线注记层表示,图面上电信管线不表示井内连线, 在管线线段表内注明各点在井内的连接关系,并在线型栏注明“2”; 其他管线只表示特征点的连接关系。管线进井处的管线点的点符号 编码应填写一井多盖编码或一井多阀门编码。轮廓线的线段信息记 录在注记数据线表中,轮廓点坐标记录在注记数据点表中。轮廓几 何中心加注相应的窨井符号(一井多盖范围内虚拟窨井),其坐标记 录在注记数据点表中。

Linux管道

管道技术是Linux的一种基本的进程间通信技术。在本文中,我们将为读者介绍管道技术的模型,匿名管道和命名管道技术的定义和区别,以及这两种管道的创建方法。同时,阐述如何在应用程序和命令行中通过管道进行通信的详细方法。 1、管道技术模型 管道技术是Linux操作系统中由来已久的一种进程间通信机制。所有的管道技术,无论是半双工的匿名管道,还是命名管道,它们都是利用FIFO排队模型来指挥进程间的通信。对于管道,我们可以形象地把它们当作是连接两个实体的一个单向连接器。例如,请看下面的命令: ls -1 | wc -l 该命令首先创建两个进程,一个对应于ls –1,另一个对应于wc –l。然后,把第一个进程的标准输出设为第二个进程的标准输入(如图1所示)。它的作用是计算当前目录下的文件数量。

图1:管道示意图 如上图所示,前面的例子实际上就是在两个命令之间建立了一根管道(有时我们也将之称为命令的流水线操作)。第一个命令ls执行后产生的输出作为了第二个命令wc的输入。这是一个半双工通信,因为通信是单向的。两个命令之间的连接的具体工作是由内核来完成的。下面我们将会看到,除了命令之外,应用程序也可以使用管道进行连接。 2、信号和消息的区别 我们知道,进程间的信号通信机制在传递信息时是以信号为载体的,但管道通信机制的信息载体是消息。 那么信号和消息之间的区别在哪里呢? 首先,在数据内容方面,信号只是一些预定义的代码,用于表示系统发生的某一状况;消息则为一组连续语句或符号,不过 量也不会太大。在作用方面,信号担任进程间少量信息的传

送,一般为内核程序用来通知用户进程一些异常情况的发生;消息则用于进程间交换彼此的数据。 在发送时机方面,信号可以在任何时候发送;消息则不可以在任何时刻发送。在发送者方面,信号不能确定发送者是谁;消息则知道发送者是谁。在发送对象方面,信号是发给某个进程;消息则是发给消息队列。在处理方式上,信号可以不予理会;消息则是必须处理的。在数据传输效率方面,信号不适合进大量的信息传输,因为它的效率不高;消息虽然不适合大量的数据传送,但它的效率比信号强,因此适于中等数量的数据传送。 3、管道和命名管道的区别 我们知道,命名管道和管道都可以在进程间传送消息,但它们也是有区别的。 匿名管道技术只能用于连接具有共同祖先的进程,例如父子进程间的通信,它无法实现不同用户的进程间的信息共享。再者,管道不能常设,当访问管道的进程终止时,管道也就撤销。这些限制给它的使用带来不少限制,但是命名管道却克服了这些限制。 命名管道也称为FIFO,是一种永久性的机构。FIFO文件也具有文件名、文件长度、访问许可权等属性,它也能像其它Linux 文件那样被打开、关闭和删除,所以任何进程都能找到它。换句话说,即使是不同祖先的进程,也可以利用命名管道进行通信。

管道命名及代码含义

尺寸代码区域编号○1○2○3关键保温代码 其中○1为压力等级 A 125# B 150# C 300# D 600# #为压力单位磅 E 900# F 1500# G 2500# ○2材质A铸铁 B碳钢 C低合金钢 D中间合金钢 E奥氏体不锈钢 F特种钢 G有色金属材料 管线代码:BD 污水排放;CL 烧碱;CWR 冷却水回水;CWS 冷却水给水;DW脱盐水; HS 高压蒸汽;HWR 热水回水;HWS 热水给水;IA 仪表风;IW新鲜水; LLC 低低压凝液;LLS 地低压蒸汽;LS 低压蒸汽;MC中压凝液; MS 中压蒸汽;N 氮气;O 氧气;P 工艺介质;PA 装置空气; PC 泵送凝液;PTW 饮用水;SA 硫酸;VA 放空到大气VF 放空到火炬。单元号工艺单元名称 11 低压羰基合成单元 12 丁醇单元 13 辛醇单元 14 蒸汽系统 15 醛和醇储存 16 火炬系统 保温代码A 防噪声 C 保冷 F 防火 H 保温 PP 人身防护 S 防晒 S4P 蒸汽伴热(工艺要求) S4 蒸汽伴热(冬季) E 电伴热 流体介质 C/A 催化剂和空气 A 空气 L 液体H 水 SL 固液混合S 服务 V 气态 V/L 气液混合

尺寸代码区域编号○1○2○3关键保温代码 其中○1为压力等级A 150LB ≈2.0MPa(常温数值,120℃下约耐压大约1MPa) B 300LB 5.0MPa 常温 C 400LB ≈6.8MPa 常温 D 600LB 11MPa 常温LB为压力单位磅 E 900LB 15MPa 常温 F 1500LB 26MPa 常温 G 2500LB 42MPa 常温 国内压力等级用L-Z表示L-1.0MPa; M-1.6MPa; N-2.5MPa; P-4.0MPa; Q-6.4MPa; R-10.0MPa; S-16.0MPa; T-20.0MPa; U-22.0MPa; V-25.0MPa; W-32.0MPa ○2材质A铸铁B碳钢C低合金钢D中间合金钢E奥氏体不锈钢F特种钢G有色金属材料管线代码:BD 污水排放;CL 烧碱;CWR 冷却水回水;CWS 冷却水给水;DW脱盐水; HS 高压蒸汽;HWR 热水回水;HWS 热水给水;IA 仪表风;IW新鲜水; LLC 低低压凝液;LLS 地低压蒸汽;LS 低压蒸汽;MC中压凝液; MS 中压蒸汽;N 氮气;O 氧气;P 工艺介质;PA 装置空气; PC 泵送凝液;PTW 饮用水;SA 硫酸;VA 放空到大气VF 放空到火炬。单元号工艺单元名称 11 低压羰基合成单元 12 丁醇单元 13 辛醇单元 14 蒸汽系统 15 醛和醇储存 16 火炬系统 保温代码A 防噪声 C 保冷 F 防火 H 保温 PP 人身防护 S 防晒 S4P 蒸汽伴热(工艺要求) S4 蒸汽伴热(冬季) E 电伴热 流体介质 C/A 催化剂和空气 L 液体 SL 固液混合 V 气态 V/L 气液混合 A 空气 H 水 S 服务

VC命名管道通信的实现

VC命名管道通信的实现 无论是SQL Server的用户,还是PB的用户,作为C/S结构开发环境,他们在网络通信的 实现上,都有一种共同的方法——命名管道。由于当前操作系统的不惟一性,各个系统 都有其独自的通信协议,导致了不同系统间通信的困难。尽管TCP/IP协议目前已发展成 为Internet的标准,但仍不能保证C/S应用程序的顺利进行。命名管道作为一种通信方 法,有其独特的优越性,这主要表现在它不完全依赖于某一种协议,而是适用于任何 协议——只要能够实现通信。 命名管道具有很好的使用灵活性,表现在: 1) 既可用于本地,又可用于网络。 2) 可以通过它的名称而被引用。 3) 支持多客户机连接。 4) 支持双向通信。 5) 支持异步重叠I/O操作。 不过,当前只有Windows NT支持服务端的命名管道技术。 一、命名管道程序设计的实现 1.命名管道Server和Client间通信的实现流程 (1)建立连接:服务端通过函数CreateNamedPipe创建一个命名管道的实例并返回用于 今后操作的句柄,或为已存在的管道创建新的实例。如果在已定义超时值变为零以前,有 一个实例管道可以使用,则创建成功并返回管道句柄,并用以侦听来自客户端的连接请求, 该功能通过ConnectNamedPipe函数实现。

另一方面,客户端通过函数WaitNamedPipe使服务进程等待来自客户的实例连接,如 果在超时值变为零以前,有一个管道可以为连接使用,则WaitNamedPipe将返回True,并 通过调用CreateFile或CallNamedPipe来呼叫对服务端的连接。此时服务端将接受客户端 的连接请求,成功建立连接,服务端ConnectNamedPipe返回True,客户端CreateFile将返 回一指向管道文件的句柄。 从时序上讲,首先是客户端通过WaitNamedPipe使服务端的CreateFile在限时时间内 创建实例成功,然后双方通过ConnectNamedPipe和CreateFile成功连接,并返回用以通信 的文件句柄,此时双方即可进行通信。 (2)通信实现:建立连接之后,客户端与服务器端即可通过ReadFile和WriteFile, 利用得到的管道文件句柄,彼此间进行信息交换。 (3)连接终止:当客户端与服务端的通信结束,或由于某种原因一方需要断开时,客 户端应调用CloseFile,而服务端应接着调用DisconnectNamedPipe。当然服务端亦可通 过单方面调用DisconnectNamedPipe终止连接。最后应调用函数CloseHandle 来关闭该管道。 2.命名管道服务器端和客户端代码实现 (1)客户端: HANDLE CltHandle; charpipenamestr[30]; sprintf(pipenamestr,″\\\\servername\\pipe\\pipename″) if (WaitNamedPipe( pipenamestr, NMPWAIT—WAIT—FOREVER)==FALSE // 管道名要遵循UNC,格式为\ \.\pipe\pipname,名字不分大小写。 AfxMessageBox(″操作失败,请确定服务端正确建立管道实例!″);

中国移动IP承载网网络资源命名规范V.docx

中国移动 IP 承载网 网络资源命名规范 版本号: 2. 1. 5 2 0 10 - 0 7 - 1 发布 中国移动通信有限公司发布

目录

前言 本规范是根据相关标准,结合中国移动 IP 承载网络具体情况制订。编写格式和方法采用我国标准化工作导则的有关规定。 本规范主要目的是统一中国移动IP 承载网网络资源的命名。 本规范适用于中国移动 IP 承载网络,尚有待于在具体实施过程中不断地补充和完善。 中国移动通信有限公司网络部拥有本规范的知识产权。 中国移动通信有限公司网络部保留对此规范书的解释权和修改权。

范围 本规范定义中国移动 IP 承载网网元设备、端口等的命名原则,用于指导工程 及维护的网元设备命名、 VPN 命名及端口描述等。 参考文献 下列标准所包含的条文,通过在本规范中引用而构成为本规范的条文。本规 范出版时,所示版本均为有效。所有标准都会被修订,使用本规范的各方应探讨 使用下列标准最新版本的可能性。 本技术规范引用以下标准: - 《中国移动 CMNET 省网网管系统技术规范》版,2002 年 8 月 - 《中国移动通信网网元设备编码和路由命名原则》第一版,2002 年 3 月-《中国移动传送网资源命名规范》版本 缩写词 IPNET IP Network中国移动 IP 承载网 CMNET China Mobile Network中国移动互联网 DNS Domain Name System域名系统 DSMP Data Services Management数据业务管理平台 Platform DDN Digital Data Network数字数据网络 GPRS General Packet Radio Service通用分组无线业务 HDLC High Level Data Link Control高级数据链路控制 ISDN Integrated services digital network综合业务数字网 MMS Multimedia Messaging Service多媒体消息业务 NAS Network Access Server接入服务器 NAP Network Access Point网络接入点

管道代号编号规则及含义_(1)

管道代号编号规则及含义 管道及管件的选用应符合我院《压力管道设计技术统一规定》和《化工管道设计规》(HGJ8-87)的规定,按照《化工工艺设计施工图容和深度统一规定》(HG20519.37-92)的要求,管道及仪表流程图中的管道应标注四个部分,即管道号(管段号,由三个单元组成)、管径、管道等级和隔热或隔声代号,总称为管道组合号(管道代号),一般标注在管道的上方,如下所示: PG 03 001–100 L1B - C (1)(2)(3)(4)(5)(6) 管道组合号(管道代号)由六个单元组成,这六个单元依次是:(1)物料代号;(2)主项代号;(3)管道顺序号,以上三个单元组成管道号(管段号);(4)管道尺寸; (5)管道等级;(6)隔热或隔声代号。 (1)物料代号

(2)主项代号 按工程设计总负责人给定的主项编号填写,采用两位数字,从01~99。特殊情况下允许以主项代号作为主项编号。 (3)管道顺序号 相同类别的物料在同一主项以流向先后为序,顺序编号,采用三位数字,从001~999。 (4)管道尺寸 一般标注公称尺寸,以mm为单位,只注数字,不注单位。 (5)管道等级 管道等级号由下列三个单元组成:L 1 B (1)(2)(3) 1)第一单元为管道的公称压力(MPa)等级代号,用大写英文字母表示。A~K用于ANSI标准压力等级代号(其中I、J不用),L~Z用于国标准压力等级代号(其中O、X不用)。常用的国标准压力等级代号: L——1.0MPaM——1.6MPaN——2.5MPaP——4.0MPa 2)第二单元为顺序号,用阿拉伯数字表示,由1开始。 *管道等级表的格式见《化工工艺设计施工图容和深度统一规定》

无名管道和有名管道区别

2011-06-08 21:45 linux 管道 FIFO——写的很全,转来的 pipe是Linux中最经典的进程间通信手段,在终端里通常用来组合命令,例如“ls -l|wc -l”。它的作用很直观,就是使得前一个进程的输出作为后一个进程的输入,在概念上很符合“管道”的意思。 用管道实现“ls -l | wc -l” 《情景分析》上有这个例子的代码,我觉得很适合用来了解管道。这里假设终端对应的进程为PA,wc、ls是PA先后创建的两个子进程child_B与child_C。代码简化后抄录如下: int main(){ int pipefds[2], child_B, child_C; pipe(pipefds); if (!(child_B=fork()){ //先创建“读”的一端,它要关闭“写”的的一端close(pipefds[1]); close(0); dup2(pipefds[0], 0); //在执行系统调用execve后,child_B会释放0,1,2之外由父进程打开的文件, close(pipefds[0]); //所以要把pipefds[0]复制到标准输入对应的文件句柄0 execl("/usr/bin/wc", "-l", NULL); } //这里之后,A和B可以通过管道进行通信 close(pipefds[0]); if (!(child_C=fork()){ //再创建“写”的一端,它要关闭“读”的的一端close(1); dup2(pipefds[1],1); //道理同前面 close(pipefds[1]); execl("/bin/ls", "-1", NULL); } //这里之后,B和C可以通过管道进行通信 close(pipefds[1]); wait4(child_B, NULL, 0, NULL); return 0; } FIFO FIFO就是命名管道,或有名管道。对于pipe我们不难看出它只能用于一个进程家族之间通信,父子之间,兄弟之间等等。如果想要让管道在更宽泛的环境中,那是不行的,原因是它没有“名字”或者说是匿名的,另外的进程看不到它,这样就有了命名管道。它同样是基于VFS,对应的文件类型就是FIFO文件,可以 通过mknod命令在磁盘上创建一个FIFO文件(注意:这就是它与pipe的本质区

中国电信网络资源命名及编码规范-----(公共部分分册)..

内部资料 注意保管 四川电信本地网网络资源管理系统 网络资源命名及编码规范 (公共部分分册) Version 1.1 2005年7月 四 川 省 电 信 公 司

1.前言 (1) 2.公共资源命名范围 (2) 2.1公共资源命名的范围 (2) 2.2使用说明 (2) 3.字符集 (3) 3.1说明: (3) 4.区域和子区域 (3) 4.1区域和子区域的命名 (3) 4.2区域和子区域的编码 (4) 5.局站 (7) 5.1局站的命名 (7) 5.2局站的编码 (7) 6.机房 (9) 6.1机房的命名 (9) 6.2机房的编码 (10)

1. 前言 为加强中国电信本地网网络资源的集中管理,确保全程全网通信畅通,特制定本规范对四川电信本地网网络资源实行全网统一命名和编码。 本规范是中国电信网络资源命名及编码的组成部分,所涉及的资源对象的名称和编码规则都定义了不同资源对象在中国电信网络中的唯一标识。资源对象的名称和编码均可作为日常管理维护工作中的对资源对象的称谓,资源对象的编码主要由便于计算机进行字符处理的字母和数字构成,有利于资源管理系统的开发和数据的移植。 本规范主要依据以下原则来制定: 一、唯一性原则 本规范中资源对象的命名和编码是在其相关的局部范围内来进行的,并在该范围内保证资源对象的命名和编码的唯一性。若在其上一层的范围内来定位该资源时,须将上一层的名称或编码加上,依次类推,即可保证其在各层次上的唯一性;此功能可借助计算机系统的支持。 二、扩充性原则 本规范主要考虑到编码容量的可扩充性,即能够在一定程度上满足因业务发展所带来的资源数量增加要求。 三、物理信息为主原则 本规范的制定主要以本地网网络物理构成及地理信息为依据,对于各地多样、可变的管理模式所形成的命名和编码习惯不作参考。 本规范的行文结构如下: ●资源对象的定义 ●资源对象的命名格式:命名格式包括对象的名称和编码格式。 ●本地网层面标识:指资源对象在本地网层面中全称。 ●命名示例 本规范的制订主要参考了以下国际标准和一些本地网的现行规范: -《中国电信长途网络资源命名规范》(讨论稿) —《中国电信本地网网络资源命名规范》(讨论稿) —《电信工程设计手册-市内传输线路》(上、下册) -《中国电信本地网线路维护规程》 -《深圳市电信公司管线资源管理系统设施、设备编码规则》 —《深圳本地SDH网的设备及电路编号方法》 —《广州市电信公司SDH设备环节点命名具体方法》

provider 命名管道提供程序, error40

PROVIDER: 命名管道提供程序, ERROR:PROVIDER: 命名管道提供程序, ERROR:40 - 无法打开到SQL SERVER 的连接 在链接数据库的时候,提示一个错误!错误信息如下! 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error:40 - 无法打开到 SQL Server 的连接) 我是现装了SQL Server2000 后在装SQL Server2005的,网上有很多解决方法! 下面一一列举下: 1,在开始菜单,程序里面的 SQL Server2005下有个SQL Server2005外围程序配置器选择服务和连接的外围配置器,在database engine里选择远程控制,把本地连接和远程连接改成同时使用TCP/IP和named pipes!保存.关闭数据库服务器链接,重新链接!

2,配置文件web.config里面的数据库连接字符串里面的Data Source用本地服务器名字,不要用Ip或者loacl或者. 例: 3,IIS配置里面删除默认的数据库链接字符串,因为装了SQL Server2005后,默认连接是2005 我的电脑,管理,iis配置里面的默认网站,右键查看属性,https://www.360docs.net/doc/525033612.html,版本选择你使用的版本,然后把编辑配置和编辑全局配置里面的默认的字符串链接删除! 修改编辑全局配置和编辑配置

某工程管道代号编号规则及含义 《美标》

某工程管道代号编号规则及含义《美标》4”— 1 -- S6 – 800 - 0402 — IP – 1 – 41A 4”— 1 -- S6 – 800 - 0402 — IP – 1 – 41A (1)(2)(3)(4)(5)(6)(7)(8) 管道组合号(管道代号)由7个单元组成,这7个单元依次是: (1)管道尺寸; (2)管道等级; (3)材料代码; (4)装置区域; (5)管线序号; (6)隔热或隔声代号; (7)垫片等级; (8)垫片材料。 (1)管道尺寸 一般标注公称尺寸,以英寸为单位,只注符号,不注单位。 (2)管道等级 1: 150LB 3: 300LB 6: 600LB 7: 1500LB 9: 900LB (3)材料代号 A : 铝 C : 碳钢 D : 双相钢 R : 铬 S : 不锈钢 S3 : 304 S4 : 304L S5 : 316 S6 : 316L S7 : 317L G30 : G30合金--------注“1” HB-2 : HAST –B--2 HC : HAST –C276 G : 镀锌

N : 镍合金 Zr : 锆合金 SC : 蒸汽/冷凝水用碳钢 T : TUBING 透平管 注“1” 哈斯特洛依(HASTELLOY)镍基合金 哈斯特洛依合金是镍-钼,镍-铬-钼系合金。早期的(Ni60-Mo19-Fe20)哈斯特洛依A解决了耐蚀合金领域内耐盐酸腐蚀的问题。但它只能用于70℃以下的盐酸腐蚀。适当提高钼并降低铁而发展的哈斯特洛依B(0Ni65Mo28Fe5V)和哈斯特洛依B2(00Ni70M028),则可用于沸腾温度下任意浓度的盐酸,甚至在硫酸、氢氟酸中也有良好的耐腐蚀性。 哈斯特洛依B2因超低碳量含量,其耐蚀性比哈斯特洛依B优良。哈斯特洛依B3是一个增加的牌号,热稳定性比B2好。同样具有卓越的抗盐酸、硫酸、醋酸和磷酸及其它非氧化性环境腐蚀的能力。 哈斯特洛依A、B、B2Ni-Mo合金在盐酸中有良好的耐蚀性,但在加有氧或氧化剂的介质中,则耐蚀性显著下降。为克服该合金在还原、氧化复合介质中的低耐蚀性,发展了哈斯特洛依C (Ni60Cr16Mo16W4)。 含Mo量在25%~30%的Ni-Mo合金有二个敏化区,1200~1300℃和600~900℃均有含钼较高的析出相沿晶界沉淀导致晶粒边缘微区钼贫化而产生晶间腐蚀,降低碳、硅和铁,添加钨、钒和铌可改善在盐酸和硫酸中抗晶间腐蚀性能。哈斯特洛依C经600~1150℃敏化处理后在盐酸、硫酸、铬酸中还是出现晶间腐蚀,晶粒边缘微区的贫钼与贫铬导致产生晶间腐蚀的原因。 在哈斯特洛依C中Si能显著加速σ相的形成,据此发展了第二代的低碳(0.03%)、低硅(0.03%)哈斯特洛依C276(000Cr16Ni60Mo16W4)。它不但具有高的抗还原性介质和氧化性介质腐蚀的能力,而且还能抗点蚀和缝隙腐蚀。但该合金仍有金属间相和碳化物析出。不能抗高温浓硫酸的腐蚀。在通过Ar-O2炼钢和电渣重熔等提纯处理来降低二次碳化物析出的数量或加Ti。进一步发展了极低碳 (≤0.015%)和低硅(0.08%)加Ti、不含W的第三代合金哈斯特洛依C-4(000Cr16Ni63Mo16Ti)。哈斯特洛依N(0Cr7Ni75Mo16)严格控制微量B含量,并加入Ti控制形成MC型碳化物该合金耐熔盐酸腐蚀好、焊接性好、650℃无辐射脆化。 哈斯特洛依G(0Cr22Ni45Mo6Cu2Nb2)合金,Cr、Mo较高,耐点蚀性好,镍含量高,在沸腾氯化镁42%溶液中耐应力腐蚀性能好,铌较高、碳低、耐晶间腐蚀性能也很好。该合金耐磷酸(高浓度、沸腾温度)、耐硫酸以及耐硝酸的性能均相当优良。 Ni-Fe-Cr系中加Mo的哈斯特洛依F(0Cr20Ni40Mo12Fe)合金比哈斯特洛依C铬高钼低,在硫酸与盐酸中其耐蚀性优于哈斯特洛依B、C。 哈斯特洛依C22合金是哈斯特洛依C276发展而成的,把铬含量提高到了22%。在氧化介质中的耐蚀性更高。 哈斯特洛依G30是在G3的基础上发展的含(30%)高铬的镍基合金,含5%的钼及2%的钨,具有良好的抗点蚀及缝隙腐蚀的能力。加入2%的铜加强其抗卤素硫酸的腐蚀。其30%的铬使该合金其有良好的抗硝酸腐蚀的能力。它显示出优良的抗蚀性超过了大多数镍和铁基合金,在商用磷酸里含有强氧化性酸象硝酸/氯化氢、硝酸/氟化氢和硫酸。 (4)装置区域 装置区域代码 (5)管线序列号 相同类别的物料在同一主项内以流向先后为序,顺序编号,采用三位数字,从0001~9999。 (6)隔热或隔声代号

FJPTTSA-DD-EQL-TS-PR-002,Rev0 管道命名表

第1页,共7页Page 1 of 7 版次ISSUE 0修改REV 0 管道应力Piping stress 其 它Others 介质名称、代号 及成分 温度力PIPING LIST 制表 Prepared By 审核 Approved By 专业 Discipline 校核 Checked By FJPTTSA-DD-EQL-TS-PR-002 201205SA-981/401/010-040L-01 流体相态Fl id 来自F 正常 Normal 压力管道分类份有限公司 EAST CHINA ENGINEERING SCIENCE AND TECHNOLOGY CO.,LTD. 设计阶段 Design Phase 工序 Subject 管 道 编 号 Li N 公称 管径DN 管道材料等级Piping 绝热与涂漆Insulation &painting 所在管道仪表流程图图号 P&ID D i N 管道 Pipng 应力分析备 注 R k 审定 Authorized By 涂漆等级Paint 射线照相(RT)/超声波(UT)检验 Radiography 泄漏性试验T t 试压介质Test 压力试 验Test 温度 压力图号 Doc. No. 至 T 绝热类型Insulat / 详细设计 吹扫 /清洗 S i 管 道 说 明 Piping Description 操作条件 Operating Condition 设计条件Design Cond.现场检验、试验、清扫 Field Inspection/Test/Sweeping/Cleaning 管道力学 Piping Mechanics Fluid Name, Code & Components T (℃)压力 P (MPag) LNG-TSA04-101-10"-9SP1-CC 109SP1L HP SENDOUT PUMP RECYCLE HEADER LNG-004-020-10"-9SP1-CC PR-04002LNG -1550.5-165~3812.0018.00Hydros tatic 压缩空气system 9Y NG-TSA04-102-6"-1SP1-CC 61SP1V HP SENDOUT PUMP RECONDENSER HEADER NG-004-013-6"-1SP1-CC PR-04002NG -1600.5-165~38 1.86 2.79Hydros tatic 压缩空气system 9Y LNG-TSA04-103-28"-1SP1-CC 281SP1L LNG-003-010-28"-1SP1-CC LNG-TSA04-115-12"-1SP1-CC PR-04002LNG -1550.5-165~38 1.86 2.79Hydros tatic 压缩空气system 9Y LNG-TSA04-104-2"-1SP1-CC 21SP1L LNG-TSA04-116-2"-1SP1-CC LNG-004-022-2"-1SP1-CC PR-04002LNG -1600.6-165~38 1.86 2.79Hydros tatic 压缩空气system 9Y LNG-TSA04-129-18"-9SP1-CC 189SP1L HP SENDOUT PUMP DISCHARG HEADER LNG-004-023-18"-9SP1-CC PR-04002LNG -1508-165~3812.0018.00Hydros tatic 压缩空气system 9Y NG-TSA04-130-12"-1SP1-CC 121SP1V NG-TSA04-127-6"-1SP1-CC NG-004-030-12"-9SP1-CC PR-04002NG -1600.02-165~38 1.32 1.98Hydros tatic 压缩空气system 9Y Fluid Phase From Pressure Piping Class Line No. (inch)Class P&ID Drawing No. Stress Analysis Remarks Paint.Class /Ultrasonic (%) Y Test leakage Test Medium Press.(MPag)GC1(2)RT100Y CC /RT100Y CC CC GC2RT100Y CC GC2RT100Y CC Temp. (℃) Press.(MPag)GC2RT100Y To Insulat.Class CC Sweeping /Clearing GC1(2)RT100LNG-TSA04-166-3"-1SP1-CC 31SP1L LNG-TSA04-103-28"-1SP1-CC LNG-TSA04-129-18"-9SP1-CC PR-04002LNG -1550.5-165~38 1.86 2.79Hydros tatic 压缩空气system 9Y LNG-TSA04-107-12"-1SP1-CC 121SP1L LNG-TSA04-103-28"-1SP1-CC P-0401E N1 PR-04003LNG -1550.5-165~38 1.86 2.79Hydros tatic 压缩空气system 9Y LNG-TSA04-130-1"-1SP1-CC 11SP1L LNG-TSA04-107-12"-1SP1-CC LNG-TSA04-108-2"-1SP1-CC PR-04003LNG -1550.5-165~38 1.86 2.79Hydros tatic 压缩空气system 9/LNG-TSA04-108-2"-1SP1-CC 21SP1L P-0401E N4LNG-TSA04-104-2"-1SP1-CC PR-04003LNG -1550.2-165~38 1.86 2.79Hydros tatic 压缩空气system 9/OW-TSA04-101-2"-1CU5-N 21CU5L P-0401E Pit Hose Coupling PR-04003OW Amb Atm 0~650.35//压缩空气system 1/GNI-TSA04-103-1"-1CU5-N 11CU5V Hose Coupling Diag.1-03(04-5003)P-0401E N13PR-04003GNI Amb 0.8-29~65 1.32 1.98Hydros tatic 压缩空气system 1/GNI-TSA04-101-2"-1CU5-N 21CU5V GNI-005-003-2"-1CU5-N GNI-TSA04-102-2"-1SP1-N PR-04003GNI Amb 0.8-29~65 1.32 1.98Hydros tatic 压缩空气system 1/GC2RT5/N ///N /RT5/N /RT100Y CC GC2RT100Y CC GC2RT100Y CC GC2RT100Y CC 1CU5N 1SP1N GNI-TSA04-102-2"-1SP1-N 21SP1V GNI-TSA04-101-2"-1CU5-N GNI-TSA04-111-1"-1SP1-N PR-04003GNI Amb 0.8-165~65 1.32 1.98Hydros tatic 压缩空气system 8/GNI-TSA04-110-1"-1SP1-N 11SP1V GNI-TSA04-102-2"-1SP1-N P-0401E N9A PR-04003GNI Amb 0.8-165~65 1.32 1.98Hydros tatic 压缩空气system 8/GNI-TSA04-111-1"-1SP1-N 11SP1V GNI-TSA04-102-2"-1SP1-N P-0401E N8A PR-04003GNI Amb 0.8-165~65 1.32 1.98Hydros tatic 压缩空气system 8/NG-TSA04-106-6"-1SP1-CC 61SP1L/V P-0401E N3NG-TSA04-102-6"-1SP1-CC PR-04003NG -1550.5-165~38 1.86 2.79Hydros tatic 压缩空气system 9Y NG-TSA04-131-6"-1SP1-CC 61SP1V NG-TSA04-106-6"-1SP1-CC 04-PSV-5006PR-04003NG -1550.5-165~38 1.86 2.79Hydros tatic 压缩空气system 9Y GC2RT100Y CC GC2RT100Y CC /RT100/N /RT100/ N GC2RT100/N

资源命名规范

资源内容要求 1.必须使用统一模板 2.试卷、教案、学案、专题类为WORD文档,标题用3号字黑体,正文内容为5号宋体,小标题可采用4号宋体加粗。标点符号为中文状态符号。 3.课件中的标题可根据情况,以美观、整体协调为准设定字体与内容。 4.插图要求美观、清晰,没有科学上的错误。 5.数学、物理公式规范,特殊符号正确 资源命名规范 基本规则: 1.统一使用中文状态的标点符号,例如“。”、“,”,标题中间的连字符统一使用中文的一字线“――”。这是英文状态下对应的符号“.”“, ”、“--”。 2.标题命名中统一省略“省”“市”“届”字样。 3.套卷标题命名中涉及到不同科目时,用“全科”,如果不是全科,用“×科”。涉及到套数时,用“(×科×套)”。 4.数字、括号、一字线、标点符号等均算一个字符。 5.试卷类资源网站默认是有答案的,如资源无答案,需注明“(无答案)”。 各资源分类规则: 1. 同步教学类:包括同步教案、同步学案、精品课件、同步练习、同步专题辅导5个分类命名规范:学科+年级(标明上下册)+版本+章节+名称+资源类别 命名示例:语文八年级上人教新课标第3课《蜡烛》教案 语文八年级上语文版第18课《雨林的毁灭--世界性灾难》同步练习 语文八年级上语文版第五单元测试卷 语文七年级上苏教版复习资料汇编(通海十四中) 数学七年级上沪科版5.3统计图的选择课件 数学八年级下泸科版21.2平行四边形的性质和判定单元测试(无答案) 英语八年级上冀教版Unit1Lesson2教案 英语高一人教大纲Unit1学案 英语七年级上仁爱湘教版Unit1Topic1A课件 物理八年级下人教新课标第八章电功率单元测试 化学必修Ⅰ苏教版研究物质的实验方法—物质的分离与提纯 生物七年级上人教新课标2.1.3观察动物细胞课件 生物七年级上苏教版2.1探索生命的器具同步练习 地理必修Ⅱ湘教版1.4地域文化与人口同步练习 2. 试卷类:包括月考、期中、期末、学业测试、竞赛试卷、名校名题、中高考模拟卷、名

设备位号编号规则及含义及管道代号

设备位号编号规则及含义 按照《化工工艺设计施工图内容和深度统一规定》的要求,施工图中设备名称应与初步设计所确定的名称一致。 位号的书写方法 设备位号在流程图、设备布置图及管道布置图中书写时,在规定的位置划一条粗实线-设备位号线,线上方书写设备位号,线下方在需要时可书写设备名称。(P IDCAD绘图软件中可自动生成) 1)设备位号的组成 每台设备只编一个位号,由四个单元组成,如下所示: M 03 101 A (1)(2)(3)(4) 这四个单元依次是:(1)设备类别代号;(2)设备所在的主项(建筑单体/车间/工段)的编号;(3)主项内同类设备顺序号;(4)相同设备的数量尾号。(1)设备类别代号 按设备类别编制不同的代号,一般取设备英文名称的第一个字母(大写)做代号, (2)设备所在的主项编号 按工程设计总负责人给定的主项编号填写,采用两位数字,从01~99。特殊情况下允许以主项代号作为主项编号。 (3)主项内同类设备顺序号 按同类设备在工艺流程中流向及立面位置的先后顺序编写,采用三位数字,其中第一位数字一般可采用楼层代号,从1开始,后两位为设备顺序号,从01~99。(4)相同设备的数量尾号

两台或两台以上设备并联时,它们的位号前三项完全相同,用不同的数量尾号予 以区别,按数量和排列顺序依次以大写英文字母A、B、C…作为每台设备的尾号, 在设备一览表中可以写作A/B或A-C…。 工艺图中管道及设置位号编号规则及意义 管道代号编号规则及含义 管道及管件的选用应符合我院《压力管道设计技术统一规定》和《化工管道设计规范》(HGJ8-87)的规定,按照《化工工艺设计施工图内容和深度统一规定》(HG20519.37-92)的要求,管道及仪表流程图中的管道应标注四个部分,即管道号(管段号,由三个单元组成)、管径、管道等级和隔热或隔声代号,总称为管道组合号(管道代号),一般标注在管道的上方,如下所示: PG 03 001 – 100 L1B - C (1)(2)(3)(4)(5)(6) 管道组合号(管道代号)由六个单元组成,这六个单元依次是: (1)物料代号;(2)主项代号;(3)管道顺序号,以上三个单元组成管道号(管段号);(4)管道尺寸;(5)管道等级;(6)隔热或隔声代号。 (1)物料代号

Linux进程通信:命名管道FIFO小结

Linux 下进程之间通信可以用命名管道FIFO 完成。命名管道是一种特殊类型的文件,因为Linux 中所有事物都是文件,它在文件系统中以文件名的形式存在。 在程序中,我们可以使用两个不同的函数调用来建立管道: #include #include int mkfifo(const char *filename, mode_t mode); int mknode(const char *filename, mode_t mode | S_IFIFO, (dev_t) 0 ); 下面先来创建一个管道: view plaincopy to clipboardprint? #include #include #include #include int main() { int res = mkfifo("/tmp/my_fifo", 0777); if (res == 0) { printf("FIFO created\n"); } exit(EXIT_SUCCESS); } #include #include #include #include int main() { int res = mkfifo("/tmp/my_fifo", 0777); if (res == 0) { printf("FIFO created\n"); } exit(EXIT_SUCCESS); } 编译这个程序: gcc -o fifol.c fifo

各种常用管道管径的表示方法及对照表

各种常用管道管径的表示方法及对照表 Revised as of 23 November 2020

各种常用管道管径的表示方法及对照表 夏某人2018-03-25 23:56:59 小编现给大家分享一下工程中各种管道管径的表示及对照表,请大家转发、收藏,以备不时之需! ? 一、De、DN、D、d、Φ的含义 一般来说,管子的直径可分为外径(De)、内径(D)、公称直径(DN)。

1、DN是指管道的公称直径,是外径与内径的平均值。DN的值=De的值﹣*管壁厚度。注意:这既不是外径也不是内径。水、煤气输送钢管(镀锌钢管或非镀锌钢管)、铸铁管、钢塑复合管和聚氯乙烯(PVC)管等管材,应标注公称直径“DN”(如DN15、DN50); 2、De主要是指管道外径,PPR、PE管、聚丙烯管外径,一般采用De标注的,均需要标注成外径 x 壁厚的形式,例De25 x 3; 3、D一般指管道内径; 4、d混凝土管内直径。钢筋混凝土(或混凝土)管、陶土管、耐酸陶瓷管、缸瓦管等管材,管径宜以内径d表示(如d230、d380等); 5、φ表示普通圆的直径;也可表示管材的外径,但此时应在其后乘以壁厚。如φ25 x 3,表示外径25mm,壁厚为3mm的管材。对无缝钢管或有色金属管道,应标注“外径 x 壁厚”。例如φ108 x 4,φ可省略。中国、ISO和日本部分钢管标准采用壁厚尺寸表示钢管壁厚系列。对这类钢管规格的表示方法为管外径 x 壁厚。例如φ x ; 6、DN为Nominal diameter意思是公称直径; 7、De为external diameter意思是外径; 8、Dgdiametergong(汉语拼音“公”的声母)这下你就明白了,Dg是国产货,有中国特色的国产货,现在都不用了。 二、管径的表达方式

相关文档
最新文档