응용 프로그램 (문서 관리 시스템)에서는 두 응용 프로그램을 동일하게 유지하기 위해 화면 변경 사항을 알리거나 (화면 변경 내용을 다른 프로그램에 알리는 것으로 가정) 응용 프로그램 데이터 중 하나는 주문 이행 응용 프로그램이고, 다른 하나는 원본 팩스의 문서 뷰어입니다. 성취 앱은 vb6로 작성되고 문서 관리자는 .net 3.5 (C#)에 있습니다. 터미널 서버에서 실행되기 때문에 세션 인식이 가능해야합니다. 문서 뷰어 또는 이행 응용 프로그램이 먼저 열려 있고 둘 다 다른 응용 프로그램없이 사용할 수 있습니다. IPC의 가장 좋은 방법은 무엇입니까?VB6 및 .net 응용 프로그램에 가장 적합한 IPC
답변
Vista 또는 Windows 7에서 실행할 수있게하려면 IPC의 가장 좋은 형태는 TCP입니다 (이는 Winsock 컨트롤을 사용하여 VB6에서 매우 쉽게 수행됩니다).
이 장점은 두 사용자가 동일한 사용자로 실행 중이 아니더라도 통신 할 수 있다는 것입니다 (Vista +에서는 SendMessage 또는 Named Pipes로 연결할 수 없습니다). 기억해야 할 유일한 것은 방화벽에 규칙이 설정되어 차단되지 않도록하는 것입니다.
netsh.exe firewall set allowedprogram "{PROGRAM PATH}" "{PROGRAM NAME}" enable
크리스의 대답은 여전히 아마 가장 좋은 방법이지만, 당신은 가능성이 터미널 서버와 정신을 유지하기 kludge을 필요 : 이것은 당신의 설치 프로그램에서 수행 할 수 있습니다.
"서버"응용 프로그램으로 사용하려는 응용 프로그램에서 사용되지 않는 포트를 열고 "클라이언트"응용 프로그램에 입력되도록 표시 할 수 있습니다. 아마도 심지어 환경 변수를 사용합니다. 귀하의 필요에 따라이 접근법은 모두 잘못 될 수 있습니다.
다른 변경 사항이있을 때 알림을 받고 (실제로 변경된 사실을 알리지 않은) 두 개의 앱이 있다면 간단히 Windows 메시지를 보내고 연결하여 앱을 변경할 수 있습니다.
명명 된 파이프와 메일 슬롯은 여전히 사용할 수있는 최상의 선택 중 하나이며 크로스 유저와 크로스 프로세스로 작동합니다. 물론 Vista +에서는 여러 무결성 수준에서 실행되는 프로세스에 문제가 있으며 파일 보안과 마찬가지로 이전 OS에도 보안이 적용됩니다.
TCP는 동일한 시스템 내에서 항상 상당히 느립니다. 프로세스간에 WM_COPYDATA보다 악화 될 가능성이 있습니다.
파이프 나 메일 슬롯을 사용하면 세션 ID를 이름의 일부로 만들어 터미널 서비스를 처리 할 수 있습니다. TCP는 포트 번호의 제한된 "네임 스페이스"(항상 0에서 65535 사이의 파일 만 가질 수있는 하드 드라이브를 상상해보십시오. 각 연결에는 두 개의 포트 번호가 필요합니다)로 인해 항상 어려움을 겪습니다.
- 1. MVC 웹 응용 프로그램에 가장 적합한 .NET 기반보고 도구는 무엇입니까?
- 2. IPC - Excel 및 .NET 응용 프로그램
- 3. 프로그램에 가장 적합한 포트는 무엇입니까?
- 4. .Net 응용 프로그램 용 보고서 작성에 가장 적합한 소프트웨어는 무엇입니까?
- 5. 중간 복잡성 웹 응용 프로그램에 가장 적합한 기술은 무엇입니까?
- 6. 내 응용 프로그램에 가장 적합한 네트워킹 구현은 무엇입니까?
- 7. 데이터베이스 응용 프로그램에 적합한 디자인
- 8. .Net 컨트롤을 vb6 응용 프로그램에 동적으로 추가하는 방법
- 9. 웹 응용 프로그램에 가장 적합한 워크 플로 란 무엇입니까?
- 10. '간단한'주소록 응용 프로그램에 가장 적합한 데이터/표시 선택
- 11. WPF & EF를 사용하는 비즈니스 응용 프로그램에 가장 적합한 아키텍처는 무엇입니까?
- 12. 제한된 메모리가있는 C++ 응용 프로그램에 가장 적합한 ANTLR 파서 생성기입니까?
- 13. XML 만 반환하는 웹 응용 프로그램에 가장 적합한 방법은 무엇입니까?
- 14. ASP.net 응용 프로그램에 가장 적합한 perfmon 카운터는 무엇입니까?
- 15. Ruby on Rails 응용 프로그램에 가장 적합한 웹 서버는 무엇입니까?
- 16. WinForms 응용 프로그램에 가장 적합한 데이터 액세스 모델
- 17. 데이터베이스 응용 프로그램에 가장 적합한 기능 언어는 무엇입니까?
- 18. MVC 패러다임이 웹 응용 프로그램에 가장 적합한 이유는 무엇입니까?
- 19. 파이썬 명령 줄 응용 프로그램에 가장 적합한 레이아웃은 무엇입니까?
- 20. Java - 내 JAVA 응용 프로그램에 가장 적합한 회계 모듈은 무엇입니까?
- 21. 서비스 중재자가없는 .NET IPC
- 22. NoSQL은 데스크톱 응용 프로그램에 적합한 데이터 솔루션입니까?
- 23. VB6 응용 프로그램에 ISO C++ 클래스 공개
- 24. VB6 응용 프로그램에 SQL 스크립트 포함
- 25. Java 응용 프로그램에 적합한 네트워킹 솔루션을 선택하십시오.
- 26. PHP에서 가장 빠른 IPC
- 27. 간단한 채팅 응용 프로그램에 적합한 디자인 패턴
- 28. VB6 프로그램에 사운드 추가
- 29. .Net 및 VB6 응용 프로그램의 메모리 사용량 비교
- 30. REST는 GUI 웹 응용 프로그램에 적합한 선택입니까?
문제는 그것도 이점입니다. 단일 사용자에 대해 가능한 여러 세션과 같이 터미널 서버에서 각 응용 프로그램의 여러 인스턴스를 사용하고 있습니다. 따라서 세션을 인식하지 못하는 무언가를 사용할 수 없습니다. –