2009-04-01 35 views
5

Tôi đang thực hiện một dự án mà tôi phải viết thư viện mạng cho một thiết bị được kết nối với máy Windows. Biến chứng đến ở chỗ tôi chỉ có thể giao tiếp với thiết bị bằng cách sử dụng khung ethernet. Vì vậy, không có TCP/UDP/IP ở tất cả. Tôi không nghĩ rằng phương pháp bind/listen/accept có thể được áp dụng ở đây, nhưng có lẽ tôi đã sai. Ngoài ra, không có định tuyến hoặc chuyển đổi có liên quan.Mạng Windows chỉ sử dụng các khung Ethernet

Tôi có một vài câu hỏi. Làm cách nào để sử dụng ổ cắm để liên lạc với thiết bị này? Có winsock có hỗ trợ cho chỉ khung? Tôi đã không thể tìm thấy nhiều tài nguyên về điều này. Có ai có bất kỳ ý tưởng về cách tôi nên tiến hành?

Có sử dụng ổ cắm ngay cả ý tưởng hay không hoặc tôi có thể gửi thông tin với các tiêu đề thích hợp không?

+0

Tôi không có ý tưởng gì cả, nhưng nó có vẻ thực sự thú vị trong một loại lộn xộn theo cách –

+0

Không có thứ gì như ổ cắm ở lớp liên kết dữ liệu. – BobbyShaftoe

Trả lời

2

Sử dụng WinPCap, API có một API để gửi và nghe dữ liệu thô.
Bạn có thể tạo lớp giao tiếp với nó.

+1

winPCap chậm hơn nhiều so với gửi mẫu WinDDK NdisProt. Điều đó sẽ cho biết điều gì đó – Ulterior

1

Cung cấp cho xem WinAoE code một chế độ xem - nó cho phép Windows nói chuyện với ATA qua thiết bị Ethernet có nghĩa là nó phải giao tiếp mà không cần bất kỳ lớp trên nào của ngăn xếp mạng.

được sửa đổi:

Khi gần như tôi có thể nói, nếu bạn muốn gửi khung ethernet liệu, bạn muốn NdisSend và bạn bè.

+0

http://msdn.microsoft.com/en-us/library/ff554712.aspx <--- liên kết mới tới NdisSend –

+0

@ Prof.Falken Bây giờ nó được khấu hao. – Navin

-1

Cũng như winpcap và NDIS, bạn cũng có thể xem các ổ cắm thô là một phần tiêu chuẩn của API Windows và không yêu cầu bạn phải viết mã trình điều khiển http://msdn.microsoft.com/en-us/library/ms740548(v=vs.85).aspx.

+2

Ổ cắm thô cho phép bạn gửi gói tin ở cấp IP, nhưng không phải là cấp ethernet. – bearda

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