2009-04-01 14 views
5

Estoy haciendo un proyecto en el que debo escribir una biblioteca de red para un dispositivo conectado a una máquina con Windows. La complicación viene en que solo puedo comunicarme con el dispositivo usando marcos de ethernet. Entonces no hay TCP/UDP/IP en absoluto. No creo que el enfoque de vincular/escuchar/aceptar se pueda aplicar aquí, pero tal vez estoy equivocado. Además, no hay enrutamiento o cambio involucrados.Redes de Windows usando solo tramas Ethernet

Tengo algunas preguntas. ¿Cómo uso un socket para comunicarme con este dispositivo? ¿Winsock tiene soporte para solo marcos? No he podido encontrar muchos recursos sobre esto. ¿Alguien tiene alguna idea sobre cómo debo proceder?

¿Está utilizando sockets incluso una buena idea o puedo simplemente enviar la información con los encabezados correspondientes?

+0

No tengo ni idea, pero suena realmente interesante en una especie de camino desordenado –

+0

No existe un enchufe en la capa de enlace de datos. – BobbyShaftoe

Respuesta

2

Use WinPCap, tiene una API para enviar y escuchar datos en bruto.
Puede construir su capa de comunicación con él.

+1

winPCap es mucho más lento en el envío que la muestra WinDDK NdisProt. Eso debería decir algo – Ulterior

1

Dele un vistazo al WinAoE code - dice que permite que Windows hable con ATA a través de dispositivos Ethernet, lo que significa que tiene que comunicarse sin ninguna de las capas superiores de la pila de red.

Editado:

Hasta donde puedo decir, si usted desea enviar tramas Ethernet primas, que desea NdisSend y amigos.

+0

http://msdn.microsoft.com/en-us/library/ff554712.aspx <--- nuevo enlace a NdisSend –

+0

@ Prof.Falken Ahora está depreciado. – Navin

-1

Además de winpcap y NDIS, también puede ver los conectores brutos que son una parte estándar de la API de Windows y no requieren que escriba el código de controlador http://msdn.microsoft.com/en-us/library/ms740548(v=vs.85).aspx.

+2

Los sockets sin procesar le permiten enviar paquetes a nivel de IP, pero no a nivel de ethernet. – bearda

Cuestiones relacionadas