views:

432

answers:

2

I'm doing a project where I must write a network library for a device connected to a Windows machine. The complication comes in that I may only communicate with the device using ethernet frames. So there is no TCP/UDP/IP at all. I don't think the bind/listen/accept approach can be applied here, but maybe I am wrong. Also, there is no routing or switching involved.

I have a few questions. How do I use a socket to communicate with this device? Does winsock have any support for just frames? I haven't been able to find many resources on this. Does anyone have any ideas about how I should proceed?

Is using sockets even a good idea or can I just send out the information with the appropriate headers?

+2  A: 

Use WinPCap, it has an an API to send and listen to raw data.
You can build your communicate layer with it.

Shay Erlichmen
A: 

Give the WinAoE code a look-see - it says it lets Windows talk to ATA over Ethernet devices which means it has to communicate without any of the upper layers of the network stack.

Edited:

As near as I can tell, if you want to send raw ethernet frames, you want NdisSend and friends.

BonkaBonka
http://msdn.microsoft.com/en-us/library/ff554712.aspx <--- new link to NdisSend
Amigable Clark Kant