Question

J'ai vu une très belle bibliothèque pour les sockets dans la bibliothèque POCO. Cela utilise une approche "classique" qui fonctionne sur les systèmes Linux et Windows, principalement une approche basée sur la sélection.

Je voudrais savoir s'il y a quelque chose de spécifique pour Windows qui utilise Async Io (ports d'achèvement?) Comme je veux l'utiliser sur un serveur proxy / socks haute performance.

Était-ce utile?

La solution

Peut-être Boost :: Asio est ce que vous recherchez?

Autres conseils

Dans le cadre de mon open-source Projet logiciel BADVPN, J'ai développé un cadre de programmation de réseau multiplateforme (unique) motivé (unique) pour le langage C. Il utilise Epoll sur Linux et IOCP sur Windows.

Quelques pièces importantes:

Il fait de lourds usage de Programmation basée sur le flux. Par exemple, BConnection, l'abstraction de TCP, utilise le StreamPassInterface et StreamRecVinterface Interfaces d'E / S de flux à usage général. Ceci est très utile; Par exemple, si vous devez ajouter une prise en charge SSL à votre application, il est peu plus nécessaire que de lancer un Bsslconnection objet au-dessus de BConnection.

Bien que la majeure partie du cadre soit bien documentée, je ne fournit pas encore de guides sur la façon de l'utiliser. Vous pouvez utiliser Ce programme de base comme point de départ. Bien qu'il ne soit pas destiné à apprendre, le tun2socks Le programme et en particulier le programme UDPGW plus petit qui l'accompagne pourrait être utile.

Depuis que vous avez mentionné les chaussettes, dans mon cadre, j'ai également implémé Un client SOCKS5 très simple (Aucune authentification, etc.) qui est utilisée par Tun2Socks.

Je peux proposer une bibliothèque C que j'ai écrite pour un jeu de réseau. Cette bibliothèque était destinée à des connexions TCP courtes simultanées à volume élevé. Il utilise des threads Asynchrones Epoll, Kqueues, IOCP ou synchrones. L'interface est très simple et est abstraite via un rappel dans la façon dont Node.js fonctionne. En tant que serveur Echo, il peut gérer 60k demandes par seconde. Voir https://github.com/freedib/gasio

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top