- UID
- 1029342
- 性别
- 男
|
客户端源码
view plaincopy to clipboardprint?
#include <windows.h>
#include <iostream>
using namespace std;
const TCHAR szPipeName[] = L"[url=]////hello//pipe//lvbin[/url]";
int main(void)
{
HANDLE hPipe = CreateFile(szPipeName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hPipe == INVALID_HANDLE_VALUE)
{
printf("CreateFile return [%d]!/n", GetLastError());
return -1;
}
DWORD dwRead, dwWrite;
char szBuf[1024] = {0};
for (int i = 0; i < 10; ++i)
{
sprintf(szBuf, "%d", i);
WriteFile(hPipe, szBuf, strlen(szBuf), &dwWrite, 0);
printf("Send %s/n", szBuf);
memset(szBuf, 0, sizeof(szBuf));
ReadFile(hPipe, szBuf, sizeof(szBuf), &dwRead, 0);
printf("Recv %s/n", szBuf);
}
}
#include <windows.h>
#include <iostream>
using namespace std;
const TCHAR szPipeName[] = L"[url=]////hello//pipe//lvbin[/url]";
int main(void)
{
HANDLE hPipe = CreateFile(szPipeName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hPipe == INVALID_HANDLE_VALUE)
{
printf("CreateFile return [%d]!/n", GetLastError());
return -1;
}
DWORD dwRead, dwWrite;
char szBuf[1024] = {0};
for (int i = 0; i < 10; ++i)
{
sprintf(szBuf, "%d", i);
WriteFile(hPipe, szBuf, strlen(szBuf), &dwWrite, 0);
printf("Send %s/n", szBuf);
memset(szBuf, 0, sizeof(szBuf));
ReadFile(hPipe, szBuf, sizeof(szBuf), &dwRead, 0);
printf("Recv %s/n", szBuf);
}
}
服务器端源码
view plaincopy to clipboardprint?
#include <iostream>
#include <Windows.h>
using namespace std;
int main(void)
{
TCHAR strPipeName[] = L"[url=]////.//pipe//lvbin[/url]";
PSECURITY_DESCRIPTOR psd;
psd = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH);
if (!InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION))
{
LocalFree((HLOCAL)psd);
return -1;
}
if (!SetSecurityDescriptorDacl(psd, TRUE, (PACL)NULL, FALSE))
{
LocalFree((HLOCAL)psd);
return -1;
}
SECURITY_ATTRIBUTES saAttr;
saAttr.nLength =sizeof(SECURITY_ATTRIBUTES);
saAttr.lpSecurityDescriptor = psd;
saAttr.bInheritHandle = TRUE;
HANDLE hIPC = CreateNamedPipe(strPipeName,
PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT,
1, 0, 0, 1000, &saAttr);
if (hIPC == INVALID_HANDLE_VALUE)
{
return -1;
}
char szBuf[1024] = {0};
DWORD dwRead, dwWrite;
char szWrite[] = "Get You/n";
ConnectNamedPipe(hIPC, NULL);
while(1)
{
if (!ReadFile(hIPC, szBuf, sizeof(szBuf), &dwRead, 0))
{
break;
}
printf("%s/n", szBuf);
memset(szBuf, 0, sizeof(szBuf));
if (!WriteFile(hIPC, szWrite, strlen(szWrite), &dwWrite, NULL))
{
break;
}
}
return 0;
};
#include <iostream>
#include <Windows.h>
using namespace std;
int main(void)
{
TCHAR strPipeName[] = L"[url=]////.//pipe//lvbin[/url]";
PSECURITY_DESCRIPTOR psd;
psd = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH);
if (!InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION))
{
LocalFree((HLOCAL)psd);
return -1;
}
if (!SetSecurityDescriptorDacl(psd, TRUE, (PACL)NULL, FALSE))
{
LocalFree((HLOCAL)psd);
return -1;
}
SECURITY_ATTRIBUTES saAttr;
saAttr.nLength =sizeof(SECURITY_ATTRIBUTES);
saAttr.lpSecurityDescriptor = psd;
saAttr.bInheritHandle = TRUE;
HANDLE hIPC = CreateNamedPipe(strPipeName,
PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT,
1, 0, 0, 1000, &saAttr);
if (hIPC == INVALID_HANDLE_VALUE)
{
return -1;
}
char szBuf[1024] = {0};
DWORD dwRead, dwWrite;
char szWrite[] = "Get You/n";
ConnectNamedPipe(hIPC, NULL);
while(1)
{
if (!ReadFile(hIPC, szBuf, sizeof(szBuf), &dwRead, 0))
{
break;
}
printf("%s/n", szBuf);
memset(szBuf, 0, sizeof(szBuf));
if (!WriteFile(hIPC, szWrite, strlen(szWrite), &dwWrite, NULL))
{
break;
}
}
return 0;
};
很简单的
怕以后找代码麻烦,就贴在这了。 |
|