2009-11-17 32 views
17

Có bất kỳ lý do nào để đặt ống dẫn trên IPC địa phương (cả hai sử dụng win-api), hiệu quả-wize, tài nguyên-wize hoặc khác, vì cả hai đều hoạt động rất giống nhau (và có thể bị trừu tượng bởi giao diện tương tự), trong một ứng dụng có khả năng đã sử dụng ổ cắm cho mục đích mạng?Ổ cắm vs ống có tên cho IPC cục bộ trên Windows?

Tôi có thể đặt tên ít nhất vấn đề về địa chỉ: số cổng cho ổ cắm chống lại tên tệp cho đường ống. Ngoài ra, các đường ống được đặt tên (AFAIK) sẽ không cảnh báo tường lửa (hộp thoại chặn/mở khóa), mặc dù các ứng dụng bị chặn vẫn có thể giao tiếp thông qua ổ cắm cục bộ. Bất cứ điều gì khác để đưa vào tài khoản?

Trong trường hợp sử dụng ổ cắm, có bất kỳ cài đặt/cờ chiến thắng nào được đề xuất khi sử dụng ổ cắm cục bộ không?

Trả lời

15

Một số khác biệt tinh tế:

Ổ cắm sẽ không hoạt động đối với IPC cục bộ nếu bạn không có bộ điều hợp hoạt động. Làm thế nào phổ biến là nó có một máy tính mà không có một bộ chuyển đổi chức năng? Vâng, tôi bị cắn khi ai đó cố gắng trình diễn phần mềm của chúng tôi cho khách hàng trên máy tính xách tay không được cắm vào mạng hoặc nguồn điện (vì vậy hệ điều hành đã tắt thẻ mạng để tiết kiệm pin) và bộ điều hợp không dây bị vô hiệu hóa (vì người dùng máy tính xách tay không sử dụng mạng không dây). Bạn có thể giải quyết vấn đề này bằng cách cài đặt bộ điều hợp loopback nhưng điều đó không lý tưởng.

Phần mềm tường lửa có thể gây ra sự cố khi thiết lập kết nối TCP/IP. Nó không phải là một vấn đề cho IPC địa phương, nhưng tôi không thuyết phục. Named pipes can have firewalls too.

Bạn có thể gặp sự cố do các đặc quyền cần thiết để tạo các đường ống có tên hoặc để tạo các phiên bản mới của các đường ống có tên. Ví dụ, tôi đã chạy nhiều máy chủ bằng cách sử dụng cùng một đường ống có tên (có lẽ không phải là một ý tưởng tốt, nhưng điều này là để thử nghiệm) và một số thất bại trong CreateNamedPipe vì máy chủ đầu tiên tạo đường ống đang chạy trong chế độ Quản trị viên (vì nó đã được khởi chạy từ Visual Studio trong chế độ quản trị viên) trong khi phần còn lại được khởi chạy từ dòng lệnh với mức UAC bình thường.

Mặc dù bài viết được đề cập bởi Rubens chủ yếu là về IPC qua mạng, nó làm cho điểm "Đường ống được đặt tên cục bộ chạy ở chế độ hạt nhân và cực kỳ nhanh".

+7

PC Windows luôn có cài đặt giao diện loopback ảo. Bạn không cần phải có bộ điều hợp mạng hoặc trình điều khiển trong PC để sử dụng ổ cắm Windows. Sử dụng địa chỉ IP 127.0.0.1 để xử lý các quy trình cục bộ của bạn. – phord

4

Một giải pháp khác mà bạn có thể muốn xem xét là khu vực bộ nhớ dùng chung. Đó là một chút công việc bởi vì bạn phải thiết lập một giao thức kiểm soát dòng chảy chính mình, nhưng tôi đã sử dụng thành công này trong quá khứ, nơi tốc độ là điều quan trọng nhất.

Các vấn đề liên quan