Pergunta

Estou portando uma biblioteca de comunicações do Linux para o Windows. Eu sei o que a minha abordagem é para a maior parte. A biblioteca utiliza todos os quadros de nível ethernet brutos para todas as comunicações.

A biblioteca Eu sou portagem de faz uso da família PF_PACKET eo sockaddr_ll struct. Depois de navegar através do site winsock do MSDN, eu não encontrei uma família / struct equivalente. Qual deve ser a minha abordagem estar aqui?

Eu tenho algumas idéias, mas eu não tenho certeza se eles são boas idéias Eu poderia usar PF_UNSPEC, para não especificado. Eu poderia simplesmente passar o número PF_PACKET representa (é uma curta não assinada) Eu também poderia apenas fazer o meu próprio struct sockadddr_ll no Windows.

Nenhuma dessas idéias parecem bom para mim, eles parecem apenas como hacks que não são realmente susceptíveis de trabalho.

Se alguém tiver alguma sugestão, eu aprecio isso.

Foi útil?

Solução

Eu suponho que você está se referindo a Raw Sockets (onde você tem que escrever a camada de rede, camada de transporte e informações camada de aplicação). versões New Windows (XP SP2 e para cima) têm suporte muito limitado para soquetes brutos com muitas restrições.

Mais informações (desça até "Limitações no Raw Sockets ")

A solução, creio eu, é usar WinPcap , que permite enviar pacotes de matérias- nesses sistemas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top