邮槽的通信基于广播,并且没有错误的检查、只能允许客户机发送给服务器。因此可以做到尽量的简单。邮槽的创建是在服务器端实现的,使用CreateMailslost 函数。
例:Mailslot = CreateMailslot(".//Mailslot//MySlot",0,MAILSLOT_WAIT_FOREVER,NULL)
其中的Mailslot是一个HANDLE类型。读取的时候可以使用ReadFile来获取发送的数据。
客户端的创建使用了CreateFile。
例:Mailslot = CreateFile(ServerName,GENERIC_WRITE,
FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,
NULL)
发送数据的时候则使用WriteFile(Mailslot,"This is a test",14,&ByteWritten,NULL);
在创建邮槽的时候使用了".//Mailslot//MySlot”,这是本地机器的创建方式,而我想改成两台机器进行通信,结果不能成功。换成IP或主机名都不行,当试验使用//*/时,成功发送,但是远程机器会有两句话出现,本地机器会则出现了四句。不明白其中的原因?
2009年7月21日11:30:00
远程计算机可以进行通信了,问题很白痴,那就是在书写//时候我一直是按照两个来写的,其实应该有四个才对。
但是*/本地的程序出现四次,远程的出现两次。这个问题还是不得解决。