我做了一个邮槽通信的程序。在本机运行没有问题,可是把client放到局域网的另一台机器上之后,server就没有响应。
在createfile中server的名称为"\\\\.\\mailslot\\mailslot_data"
client的名称为"\\\\*\\mailslot\\mailslot_data"
到底是哪里出了问题呢?

解决方案 »

  1.   

    转载一下:命名规则:\ \ s e r v e r \ M a i l s l o t \ [ p a t h ] n a m e
    请将上述字串分为三段来看:\ \ s e r v e r 、\ M a i l s l o t 和\ [ p a t h ] n a m e 。第一部分\ \ s e r v e r 对应于
    服务器的名字,我们要在上面创建邮槽,并在在上面运行服务器程序。第二部分\ M a i l s l o t 是一
    个“硬编码”的固定字串,用于告诉系统这个文件名从属于M S F S 。而第三部分\ [ p a t h ] n a m e 则
    允许应用程序独一无二地定义及标识一个邮槽名。其中,“p a t h ”代表路径,可指定多级目录。
    举个例子来说,对一个邮槽进行标识时,下面这些形式的名字都是合法的(注意M a i l s l o t 不得
    变化,必须原文照输,亦即所谓的“硬编码”):
    \ \ O r e o \ M a i l s l o t \ M y m a i l s l o t
    \ \ Te s t s e r v e r \ M a i l s l o t \ C o o l d i r e c t o r y \ F u n t e s t \ A n o t h e r m a i l s l o t
    \ \ . \ M a i l s l o t \ E a s y m a i l s l o t
    \ \ * \ M a i l s l o t \ M y s l o t
    服务器字串部分可表示成一个小数点(.)、一个星号(*)、一个域名或者一个真正的服务
    器名字。所谓“域”,其实就是一系列工作站和服务器的组合,它们共用一个相同的组名。