|
아 그런뜻이 아닌데요.. 통신에서 아래와 같은 통신일경우 통신횟수가 많으면
해당 구문이 빈번히 호출된다는 뜻이었습니다.
리눅스야 뭐.. 통신 종류가 많지만 윈도우즈에서 딱히
send message (리눅스에서 시그널 비슷하죠)
pipe (리눅스 파이프와 비슷, 리눅스가 훨씬 편하지만요)
socket 통신 (tcp 등 각종 프로토콜 사용)
이정도 아닐까요??
번외편 님이 쓰신 글 :
: 둘리님 답변 감사드립니다. 윗부분은 제가 조금 시간을 투자하면 해결 할수 있을것 같은데
: 파이프 통신이 아닌 다른 구조를 사용하는것이 좋을수도 있다고 하셨는데요..
: 다른 구조라 하면 어떤 것이 있는지 힌트좀 주세요
: 조금 찾아봤지만 감이 안잡히네요.
:
:
: 둘리 님이 쓰신 글 :
: : 돌려봐야 되지만
: : ResultString = ResultString + buffer;
: : 부분은 좋지않은 로드를 걸 수 있습니다.
: : 또한 데이터 통신(파이프를 이용한 통신이죠 이경우) 이 빈번히 자주 일어나면 좋은 방법 갖지 않습니다.
: : 다른 구조를 사용해 보심이 좋을듯 하군요. 데이터량이 적으면 별 문제 없겠지만요..
: :
: :
: : 번외편 님이 쓰신 글 :
: : : 콘솔모드 동작을 시키는데 불필요한 코드가 좀있는것 같습니다.
: : : 동작시키는데 시간이 오래걸리는지 리소스가 많이 먹는건지 아니면 cmd 모드가
: : : 원래 이런지는 잘 모르겠지만
: : : 조금 불안한 면이 있는것 같습니다.
: : : 필요없거나 수정할 부분이 있다면 정정좀 해주세요.
: : :
: : : int i,j=3;
: : : char buffer[512];
: : : char IP_Gateway[30];
: : : int IP_Index;
: : : bool flag;
: : :
: : : DWORD BytesRead;
: : : AnsiString ResultString;
: : :
: : : HANDLE hwrite, hread;
: : : SECURITY_ATTRIBUTES sa;
: : : sa.nLength = sizeof(SECURITY_ATTRIBUTES);
: : : sa.lpSecurityDescriptor = NULL;
: : : sa.bInheritHandle = true;
: : :
: : : flag = CreatePipe(&hread, &hwrite, &sa, 0);
: : :
: : : STARTUPINFO si;
: : : memset(&si, 0, sizeof(STARTUPINFO));
: : : si.cb = sizeof(STARTUPINFO);
: : : si.dwFlags = STARTF_USESTDHANDLES;
: : : si.hStdOutput = hwrite;
: : : si.hStdError = hwrite;
: : : PROCESS_INFORMATION pi;
: : :
: : : flag = CreateProcess(NULL, "route print", NULL, NULL,True, DETACHED_PROCESS,
: : : NULL, NULL, &si, &pi);
: : :
: : : CloseHandle(hwrite);
: : :
: : : while(ReadFile(hread, buffer, sizeof(buffer)-1, &BytesRead, NULL) && BytesRead)
: : : {
: : : buffer[BytesRead] = '\0';
: : : ResultString = ResultString + buffer;
: : : }
: : : CloseHandle(hread);
: : :
: : : IP_Index = ResultString.AnsiPos("Default Gateway:");
: : : memcpy(IP_Gateway,&ResultString[IP_Index+22],30);
: : :
: : : CloseHandle(pi.hThread);
: : : CloseHandle(pi.hProcess);
: : :
: : : for( i=0;i<30;i++)
: : : {
: : : if(IP_Gateway[i] == '.' )
: : : {
: : : j--;
: : : }
: : :
: : : if( j == 0 )
: : : {
: : : j = i +1 ;
: : : break ;
: : : }
: : : }
: : : memset(&IP_Gateway[j],0,(30 - j) );
|