Оболочка C # для Winsock 2 DLL?

#c# #silverlight #sockets #pinvoke #winsock2

#c# #silverlight #сокеты #pinvoke #winsock2

Вопрос:

Теперь, когда Silverlight 5 (RC) поддерживает P / Invoke, я подумываю о реализации класса сокетов с функциональностью сервера, то есть класса, который реализует методы Bind, Listen, Accept и т. Д. С помощью P / Invoke я мог бы получить доступ к методам сокетов в ws2_32.dll из моей библиотеки классов Silverlight.

Если возможно, я хотел бы начать с самого начала. Это долгий путь, но: кто-нибудь внедрил оболочку C # для библиотеки DLL Winsock 2, и в этом случае эта попытка общедоступна?

Проект Mono, конечно, предоставляет собственную реализацию сокета на C #, но этот код, мягко говоря, сопряжен с небольшими накладными расходами. Я ищу более легкое решение, если оно есть.

Комментарии:

1. Возможно, я что-то упускаю, но есть ли какая-либо причина не использовать встроенный класс System.Net.Sockets? msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx

2. В Silverlight встроенный класс сокетов не поддерживает серверные методы, такие как Bind, Listen и Accept. С помощью P / Invoke в Silverlight я смог бы реализовать настраиваемый класс сокетов, поддерживающий эти методы.

3. Silverlight отсутствует в списке поддерживаемых платформ (конец страницы в вашей ссылке)

4. Я что-то упустил. Спасибо!

5. Итак, вы хотите открыть прослушивающий сокет в моем браузере. Благодаря антивирусным сканерам / безопасности браузера, что они этого не допускают.

Ответ №1:

не уверен, что это то, что вы ищете, но на http://www.pinvoke.net/default.aspx/ws2_32.bind # вы можете найти подписи, которые вы ищете, просто посмотрите в левой части сайта на ws2_32

РЕДАКТИРОВАТЬ — после комментариев:

Это http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4043amp;lngWId=10 похоже, это реализованная на VB оболочка для Winsock2, которая может быть использована C #.

Комментарии:

1. Спасибо, Яхия. Да, я знаю о pinvoke.net . Для ws2_32 это довольно неполно. Я надеюсь, что кто-то уже приложил усилия для обертывания большего количества методов ws2_32.

2. Еще раз спасибо, Яхия. Я тоже видел это, прежде чем писать в SO. Я просмотрел код, но на первый взгляд мне не очевидно, смогу ли я его как-либо использовать. Я еще раз посмотрю, не пропустил ли я что-то в первый раз. В любом случае, я действительно ценю ваши усилия в этом.

3. Теперь я более внимательно изучил оболочку VB-socket, и, похоже, она полагается на компонент ActiveX mswinsck.osx. На самом деле это не кажется желательным решением, поэтому я перейду к ручному объявлению P / Invoke соответствующих методов в ws2_32.dll .