ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. CreateNamedPipe
³×ÀÓµå ÆÄÀÌÇÁÀÇ ÀνºÅϽº¸¦ »ý¼ºÇÏ°í ÆÄÀÌÇÁ¸¦ Á¦¾îÇϱâ À§ÇÑ Çڵ鷯¸¦ ¹ÝȯÇÑ´Ù. »ç¿ë¹ýHANDLE WINAPI CreateNamedPipe( __in LPCTSTR lpName, __in DWORD dwOpenMode, __in DWORD dwPipeMode, __in DWORD nMaxInstances, __in DWORD nOutBufferSize, __in DWORD nInBufferSize, __in DWORD nDefaultTimeOut, __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes );
¸Å°³ º¯¼ö
¼³¸í
¸®´ª½º¿Í ¸¶Âù°¡Áö·Î ÆÄÀÏó·³ ´Ù·ê ¼ö ÀÖ´Ù. CreateFileÀ¸·Î ÆÄÀÌÇÁ¿¡ ¿¬°áÇϰí ReadFile, WriteFile·Î µ¥ÀÌÅ͸¦ ÀÐÀ» ¼ö ÀÖ´Ù.
´ÜÁö Áö¿ª ÄÄÇ»ÅÍ¿¡ ÀÖ´Â ÇÁ·Î¼¼½º»çÀÌÀÇ Åë½ÅÀÌ °¡´ÉÇÑ ¸®´ª½ºÀÇ ³×ÀÎµå ÆÄÀÌÇÁ¿Í ´Þ¸®, À©µµ´Â LAN ȤÀº ÀÎÅͳݿ¡¼ÀÇ Åë½Åµµ Áö¿øÇÑ´Ù. Áö¿ª ÄÄÇ»ÅÍ¿Í LAN ¿µ¿ª¿¡¼ÀÇ Åë½ÅÀº ÃæºÐÇÑ ¼º´ÉÀ» º¸¿©ÁÖÁö¸¸ ÀÎÅÍ³Ý ¿µ¿ªÀ¸·Î ³Ñ¾î°¥ °æ¿ì TCP ¼ÒÄÏ Åë½Å¿¡ ºñÇØ ¸Å¿ì ´À¸° ¼º´ÉÀ» º¸¿©ÁØ´Ù. ¿¹Á¦
³×ÀÓµå ÆÄÀÌÇÁ·Î echo ¼¹ö Ŭ¶óÀÌ¾ðÆ®¸¦ ±¸ÇöÇØ º¸±â·Î Çß´Ù. ¼¹ö ÇÁ·Î±×·¥ÀÇ À̸§Àº echo_server_np.c, Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÇ À̸§Àº echo_client_np.c·Î Çß´Ù.
ÄÄÆÄÀÏÀº Å×½ºÆ®µÇ¾úÀ½. ÀÛµ¿ Å×½ºÆ®ÇÏÁö ¾Ê¾ÒÀ½
¿¹Á¦ : echo_server_np.c
#include <stdio.h> #include <time.h> #include <windows.h> #define PIPE_NAME "\\\\.\\pipe\\echo" #define BUF_SIZE 1024 // IN, OUT int main(int argc, char **argv) { HANDLE ph = NULL; time_t ctime = 0; struct tm *ltm=NULL; char buf[256]; DWORD nread =0, nwrite=0; BOOL brtv = FALSE; ph = CreateNamedPipe( PIPE_NAME, PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, BUF_SIZE, BUF_SIZE, NMPWAIT_USE_DEFAULT_WAIT, NULL); if (ph == INVALID_HANDLE_VALUE) { printf("Pipe create failure!!\n"); return 1; } while(1) { if(ConnectNamedPipe(ph, NULL)) { brtv = ReadFile(ph, buf, 256, &nread, NULL); if(!brtv || (nread == 0)) { printf("Read Pipe Error\n"); return 1; } brtv = WriteFile(ph, buf, nread, &nwrite, NULL); if(!brtv || (nwrite != nread)) { printf("Write Error\n"); } } } }
¿¹Á¦ : echo_client_np.c
#include <stdio.h> #include <time.h> #include <windows.h> #define PIPE_NAME "\\\\.\\pipe\\echo" #define BUF_SIZE 1024 // IN, OUT int main(int argc, char **argv) { HANDLE ph = NULL; time_t ctime = 0; struct tm *ltm=NULL; char buf[BUF_SIZE]; LPDWORD nread =0, nwrite=0; BOOL brtv = FALSE; ph = CreateFile((LPCWSTR)PIPE_NAME, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (ph == INVALID_HANDLE_VALUE) { printf("Pipe open failure!!\n"); return 1; } while(1) { printf("> "); fgets(buf, BUF_SIZE, stdin); if(strncmp(buf, "quit\n",5) == 0) { break; } WriteFile(ph, buf, strlen(buf), nwrite, NULL); memset(buf, 0x00, BUF_SIZE); ReadFile(ph, buf, BUF_SIZE, nread, NULL); printf("Server -> %s", buf); } return 0; } |
|
||||||||||||||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|