2010-04-08 3 views
3

서버에서 C# 응용 프로그램을 실행 중이므로 여러 Windows Mobile 5.0 장치로 파일을 복사해야합니다. 이러한 장치는 이더넷 가능 크래들을 통해 네트워크에 직접 연결됩니다 (따라서 ActiveSync를 통해 PC에 연결되지 않습니다).PC에서 Windows Mobile 장치로 파일을 복사하는 좋은 방법은 무엇입니까?

이렇게하기위한 다른 옵션은 무엇입니까? 나는 RAPI가이 일을 할 수 있다는 것을 알고 있지만, 이런 식으로 네트워크를 통해 무언가를 직접 복사 할 수 있는지 확신 할 수 없다. 또한 RAPI는 ActiveSync DLL을 사용하므로 ActiveSync가 설치되어 있어야하며 가능하면이 작업을하지 않는 것이 좋습니다.

WMI가 가능합니까? 우리가 어떻게 든 각 장치의 IP 주소를 얻을 수 있다면 일반 File.IO을 사용할 수 있습니까? 코드 샘플이나 일반적인 지식을 가장 환영받을 것입니다.

답변

1

정상적인 파일 I/O가 작동하지 않습니다. 장치에는 파일 공유 OS 구성 요소가 없으므로 PC와 같이 네트워크를 통해 "찾아보기"할 수 없습니다.

RAPI는 ActiveSync를 사용하므로 AS를 설치해야 할뿐만 아니라 장치도 적극적으로 연결해야하며 ActiveSync는 한 번에 하나의 장치 연결 만 허용하므로 원하는대로 작동하지 않습니다.

이 유형의 시나리오에 대한 해결책은 항상 동일합니다. 당신은 장치에 "리스너"의 일종을 설치해야합니다. 그것은 배포 된 응용 프로그램 이건 또는 어떤 형태의 설치 프로그램 이건간에 말입니다. 때로는 삽입 된 CF/SD 카드에 자동 실행 응용 프로그램을 사용합니다 (모두 토폴로지에 따라 다름).

나는 보통 그 응용 프로그램이 PC에서 "발견"패킷의 UDP 브로드 캐스트를 수신 대기하도록합니다. 그들이 그것을받을 때, 그들은 차례로 그들의 IP 주소를 방송하고 PC는 그것들을 수집합니다. 그런 다음 PC는 TCP 소켓을 통해 파일을 수신기 응용 프로그램을 통해 장치로 보냅니다.

요즘 저는 작성해야하는 장치의 통신 코드 양을 최소화하기 위해 Padarn에서 호스팅되는 REST 서비스를 통해 모든 장치 측 부분을 수행하고 있지만 Udp/TcpClients 없이도이 모든 작업을 수행 할 수 있습니다. 너무 많은 어려움.

+0

기본적으로 이것은 우리가 이미 보유하고있는 것입니다. 클라이언트는 웹 서비스 메서드를 호출하고 큰 파일의 덩어리를 가져옵니다. 상위 서버는 클라이언트 소프트웨어를 실행하지 않고 장치를 크래들 할 필요가있는 서버에서 실행되는 푸시 메커니즘으로 바뀌 었습니다. – MusiGenesis

+0

장치가 들어오는 파일을 알 수있는 방법이 없습니다. 파일을 밀어 넣을 수만 있다면 엄청난 보안 허점이 될 것입니다. – ctacke

+0

이것은 기술적 인 한계보다는 디자인 철학 때문일 수 있지만 두 번째 PC가 폴더를 공유했다는 가정하에 PC가 네트워크상의 다른 PC로 파일을 전송할 수 있습니다. 네트워크상의 winmo 장치에서 같은 일을 (이론적으로는 적어도) 수행 할 수 없었습니까? – MusiGenesis

관련 문제