Программирование сокетов в ASP.NET? - PullRequest
4 голосов
/ 07 июля 2011

Можем ли мы выполнить программирование сокетов в ASP.NET/WCF?Как служба прослушивает порт для входящих запросов.Все клиенты извне сети также публикуют / прослушивают этот ip: порт

Когда служба записывает что-либо в порт, все клиенты получают эту вещь без опроса.

Возможно ли что-то подобное с ASP.NET/WCF?

Спасибо

Ответы [ 4 ]

1 голос
/ 28 октября 2011

Как связал alexanderb, действительно существует поддержка сокетов .NET в пространстве имен System.Net.Sockets.Как я только что закончил с коллегой, веб-сервис WCF, который взаимодействует с сервисом на основе сокетов в Корее.Мы просто отправляем некоторую информацию и получаем некоторую информацию обратно, быстро и аккуратно.Вот пример некоторого кода sockety:

const string ipAddressString = "xxx.xxx.xxx.xxx";// replace with correct IP address
IPAddress ipAddress = IPAddress.Parse(ipAddressString);
const int portNum = 1234;// replace with correct port
IPEndPoint remoteEndPoint = new IPEndPoint(ipAddress, portNum);

Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.Connect(remoteEndPoint);
string sendString = "some stuff you want to send";
byte[] bytes = Encoding.UTF8.GetBytes(sendString.ToString());
client.Send(bytes);
byte[] receiveBuffer = new byte[128];
client.Receive(receiveBuffer, 0, receiveBuffer.Length, SocketFlags.None);
string bufferString = Encoding.GetEncoding(949).GetString(receiveBufferSize);
client.Shutdown(SocketShutdown.Both);
client.Close();

try-catches и тому подобное были опущены, чтобы сохранить его как можно более простым и ориентированным на сокеты.Ключевые выводы здесь - это конструкция Socket, Connect(), Send() и Receive().Также Shutdown() и Close().Обратите внимание, что примерно три дня назад я думал, что на стене есть штуцер, в который вы вставляете вещи, так что это должно быть довольно элементарно.Но эй, это работает!

1 голос
/ 07 июля 2011

Если вы говорите о WCF / ASP.NET, эти два уровня намного выше уровня сокетов.Отвечая на ваш вопрос - да, вы можете заниматься программированием сокетов с помощью .NET Framework.

http://msdn.microsoft.com/en-us/library/system.net.sockets.aspx

РЕД.Принятие во внимание доступных технологий для распределенного / сетевого программирования, делающего программирование сокетов в настоящее время, кажется нелогичным.

0 голосов
/ 07 июля 2011

То, что вы пытаетесь сделать, не сработает, даже если вы действительно сможете заниматься программированием сокетов в Asp.Net. Asp.Net не работает постоянно, как сервис. Он завершает работу после определенного периода бездействия (веб-запросы не выполняются) и снова запускается с новыми веб-запросами. Код вашего сокета будет выполняться только с момента отправки веб-запроса до истечения этого времени ожидания.

0 голосов
/ 07 июля 2011

Для этого вам не нужны WCF или ASP.NET.Вы можете посмотреть программирование сокетов UDP с помощью .NET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...