2010-06-09 1 views
0

나는 SMS 응용 프로그램을 가지고 있는데,이 응용 프로그램은 GPS 모뎀을 통해 메시지를 받고 GPS 모뎀을 통해 되돌려줍니다. 모뎀이 COM1을 사용 중입니다.COMPUTER 1 ~ 3 개의 서로 다른 응용 프로그램

이제는 동일한 GPS 모뎀을 통해 메시지를 보낼 수있는 두 가지 추가 정보가 필요합니다. 나는 데이터를 보내려면 COM1에 액세스 할 수있는 webservice를 만들려고했는데 webService를 통해 연결하려고하면 'COM1이 이미 사용 중이므로 액세스가 거부되었습니다.'라는 오류가 발생합니다.

아무도 나를 위의 시나리오에서 모뎀을 통해 연결하는 데 도움이 될 수 있습니다.

쿠시

답변

1

반드시 연결해야합니다.

가장 쉽고 (가장 기술이 뛰어나지 만 가장 유연함) 디렉토리에서 파일을 정기적으로 검사하고 파일의 메시지를 모뎀에 보내는 스크립트가 있습니다. webservice는 수신 한 모든 SMS에 대해 파일을 작성합니다. (이것은 이메일, 웹 요청 등을 받아 들일 수 있도록 확장 될 수 있습니다 ...)

더 정교한 것은 통신을 수행하고 좋아하는 프로그래밍에서 제공하는 데이터 구조와 같은 FIFO에서 메시지를 푸시하는 것입니다 플랫폼. BlockinQueue가 완벽 할 것입니다. 스레드는 대기열에서 메시지를 읽고이를 GSM 모뎀으로 보냅니다.

SMS를 보내고 싶다면 (내 경험으로는 아무런 의미가 없으며 실제로 수신자가받지 못했음) 발신자에게 피드백을 보낼 수있는 방법을 찾아야합니다. 이것은 메시지에서 다른 메시지를 보내거나 콜백을 수행하는 것에 대한 부울 플래그를 설정하는 것처럼 간단 할 수 있습니다. 그러나 나는 신경 쓰지 않을 것이다. 메시지 중심에 대한 확인이 있었을 때조차도 메시지의 30 %가 사라지는 상황이있었습니다.

+0

이 작업을 수행하는 다른 방법은 COM 구성 요소 또는 일부 중앙 집중식 DLL을 만드는 것과 비슷합니다. – Khushi

+0

네, 물론입니다. 하지만 공유 DLL이나 COM 객체는 GSM 모뎀에 대한 요청을 직렬화하는 기본적인 문제를 해결하지 못합니다. 바로 잡으려고 할 때 (나쁜 생각, 잠그지 말고,이 길은 교착 상태, 성능 문제 및 반복 할 수없는 문제로 이어진다) 잠금을해야하거나 1 스레드/프로세스를 사용하여 gps/gsm 모뎀과 통신하고 요청을 처리해야합니다. 1. 파일, 명명 된 파이프, RPC, COM 호출, 공유 메모리를 통해 대화를 나눌 수 있습니다. –