多进程通信利用命名管道实现。。
MFC程序,,服务器可以同时接收和发送信息,客户端也可以同时接收和发送信息。

服务器:
在初始化时候创建一个线程

HANDLE CNAMEDPIPEDlg::hPipe==NULL;   //这个是静态的
BOOL CNAMEDPIPEDlg::OnInitDialog()
{
    hPipe=CreateNamedPipe("\\\\.\\pipe\\lwh",PIPE_ACCESS_DUPLEX,PIPE_TYPE_BYTE,PIPE_UNLIMITED_INSTANCES,1024,1024,0,NULL);

    CreateThread(NULL,NULL,AcceptConnect,this,0,NULL);//新的线程
    return TRUE;  
}
AcceptConnect()
{
    while(1)
    {
        ReadFile(hPipe);    //循环读取数据
        ::Sleep(1000);
    }
}
SendMessage()
{
    WriteFile(hPipe)      //发送数据
}

与客户端的交互中会出现卡住问题,个人认为是:循环过程中ReadFile会一直占据hPipe命名管道,所以在WriteFile(hPipe)才会出现两个函数同时使用hPipe 而导致。求高手帮忙解决。。
Socket编程中有一个函数是WSAAsyncSelect()用来接受信息。。