004
20.12.2004, 13:18 Uhr
~Clara
Gast
|
So hier mal mein Code:
Sender:
C++: |
bool CPipe::Connect() { m_hPipe = CreateFile(sPipeName, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); return m_hPipe != INVALID_HANDLE_VALUE; }
bool CPipe::WritePipe(const char* pStr, ...) const { if (m_hPipe == INVALID_HANDLE_VALUE) return false;
char buffer[1024];
va_list argList; va_start(argList, pStr); DWORD nCount = _vsnprintf(buffer, sizeof(buffer), pStr, argList);
va_end(argList);
if (nCount <= 0) return false;
DWORD nWritten = 0; return WriteFile(m_hPipe, (BYTE*)buffer, nCount, &nWritten, NULL) != FALSE && nWritten == nCount; }
|
Empfänger:
C++: |
DWORD CPipeListener::ReadPipe() { DWORD nReaded = 0; char buffer[300]; int WERT; HANDLE hPipe = CreateNamedPipe(sPipeName, PIPE_ACCESS_INBOUND, PIPE_TYPE_BYTE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, 0, 0, 200, NULL); if (!ConnectNamedPipe(hPipe, NULL)) return FALSE;
for (int k=0; k<300;k++) buffer[k] = ' '; WERT = ReadFile(hPipe, buffer, sizeof(buffer)-1, &nReaded, NULL); ReadBuffer = buffer; ReadBuffer = ReadBuffer.Left(strlen(ReadBuffer)-10); ReadBuffer.TrimRight(" "); return 0 ; }
|
Was muß ich noch zusätzlich beachten wenn Sender und Empfänger in einem Netzwerk liegen und nicht auf einem PC? Ist das sehr umständlich zu realisieren?
Gruß Clara |