服务器程序:
#include<Windows.h>
#include<stdio.h>
int main()
{
HANDLE mail;
mail = ::CreateMailslot(L"\\\\.\\mailslot\\my", 0, MAILSLOT_WAIT_FOREVER, 0);
if (mail == INVALID_HANDLE_VALUE)
{
printf("Create mailslot failed!!\n");
return 0;
}
else
{
printf("Created successfully!!\n");
char text[200];
DWORD readtext;
while (1)
{
if (ReadFile(mail, text, 200, &readtext, nullptr))
{
printf("客服端对你说:%s",text);
printf("\n");
}
}
}
::Sleep(10000);
::CloseHandle(mail);
return 0;
}
客户端程序:
#include<Windows.h>
#include<stdio.h>
#include<iostream>
int main()
{
HANDLE mail2;
char text[] = "Hello, server!!";
DWORD writetext;
/*
CreateFileW(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile
);
*/
mail2 = ::CreateFile(L"\\\\.\\mailslot\\my", GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (INVALID_HANDLE_VALUE == mail2)
{
printf("Mailslot open failed\n");
}
else
{
while (1)
{
std::cout << "please input what you want to send to server : " << std::endl;
std::cin >> text;
if (WriteFile(mail2, text, sizeof(text), &writetext, NULL))
{
Sleep(1000);
printf("Write successfully!!\n");
}
else
{
printf("Write failed!!\n");
break;
}
}
}
::CloseHandle(mail2);
::Sleep(10000);
return 0;
}