2009-04-05 5 views
9

컴퓨터 A의 IP 주소를 사용하여 컴퓨터 B에서 컴퓨터 A의 명명 된 파이프에 액세스 할 수 있습니까? 그렇다면이 일을하기 위해 무엇을해야합니까?Win32 명명 된 파이프 및 원격 클라이언트

+0

OS? 어떤 언어를 사용하고 있습니까? –

+0

Windows, C++. 죄송합니다! –

+0

Windows와 Unix/Linux의 규칙은 다릅니다. 어떤 규칙인지 항상 아는 것이 중요합니다. –

답변

2

명명 된 파이프는 네트워크의 다른 컴퓨터에있는 프로세스간에 IPC를 제공하는 데 사용할 수 있습니다. MSDN을 참조하십시오.

Windows XP SP2, Windows Server 2003 SP1 이상을 사용하는 경우 명명 된 파이프 필터링을 사용하는 것을 잊지 마십시오. here을 참조하십시오.

12

예 네임 파이프를 통해 네트워크를 통해 통신 할 수 있습니다. 당신은 UNC 경로와 같은 파이프 이름을 지정

\\computername\pipe\pipename

또는 IP를 통해를

\\192.168.0.100\pipe\pipename

당신은 어떤 LAN 시스템에 대해이 작업을 수행, 또는에 대한 수 VPN을 통해 LAN에 연결된 모든 원격 시스템.

CreateFile과 같은 파이프 Win32 API 함수를 모두 사용합니다. 파이프를 만들려면 CreateNamedPipe을 사용하십시오.

원격 파이프를 사용하려면 먼저 원격 컴퓨터에 유효한 연결이 있어야합니다. 이렇게하려면 WNetUseConnection과 같은 API를 사용해야합니다. 또는 컴퓨터가 동일한 도메인에 있거나 동일한 u/p를 사용하는 경우에는 WNetUseConnection을 전혀 사용할 필요가 없습니다.

프로그램을 서비스로 실행중인 경우 로컬 시스템 계정으로 LAN 리소스에 액세스 할 수 없습니다. 이 서비스는 다른 계정으로 구성되어야합니다.

+0

WNetUseConnection을 사용하면 안됩니다. 핸들 htoken = NULL; \t LogonUser (L "username", L "domain", L "password", 9, 3, & htoken); \t \t \t int ret = ImpersonateLoggedOnUser (htoken); – Bluebaron

+1

누군가가 물리적 연결 레이어로 WLAN을 사용하는 리눅스에서 어떻게 작동하는지 설명 할 수 있습니까? –

1

Windows에서 파이프가 끔찍합니다. 정확히 맞춰야 할 중요한 세부 사항이 많이 있거나 이상하게 실패하고 문서가 긁히지 않습니다.

가능한 경우 소켓을 사용하십시오.

관련 문제