Ответы пользователя по тегу C#
  • Как скачивать торренты на c#?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Если кому-то важно, то вот тут есть примеры https://github.com/alanmcgovern/monotorrent/tree/m...
    Но они не работают, если поставить из нюгета последнюю стабильную версию.
    Что бы эти примеры начали работать, нужно ставить бета версию
    PM> NuGet\Install-Package MonoTorrent -Version 3.0.0-beta.rev0159
    Ответ написан
    Комментировать
  • Как правильно подключиться к websocket серверу Laravel?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Решение оказалось очень простым:
    1. Добавить аутентификатор
    2. Убедиться в правильности параметра Encrypted. У меня он, как оказалось, должен быть фолс
    Pusher pusher = new Pusher("bar", new PusherOptions { 
                    Encrypted= false,
                    Host= "localhost:6001",
                    Authorizer = new HttpAuthorizer("localhost:8000/websockets-dashboard/auth")
    });
    Ответ написан
    Комментировать
  • Как задать кастомные заголовки при каждом запросе по SOAP(WCF)?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Сам спросил, сам ответил...

    И так, механизм следующий:
    1. Нужно создать класс, имплементирующий интерфейс IClientMessageInspector
    2. Нужно создать класс, имплементирующий интерфейс IEndpointBehavior
    3. Нужно их между собой подружить


    В инспекторе сообщений заголовок задаётся следующим образом:
    public object BeforeSendRequest( ref Message request, IClientChannel channel ) {
    			MessageHeader header = MessageHeader.CreateHeader( "authenticate", "NS", "value" );
    			request.Headers.Add( header );
    	
    			Console.WriteLine( "BeforeSendRequest" );
    			return null;
    		}


    Затем инспектор привязывается к поведению:
    public void ApplyClientBehavior( ServiceEndpoint endpoint, ClientRuntime clientRuntime ) {
    			clientRuntime.ClientMessageInspectors.Add( new ClientMessageInspector() );
    		}


    И наконец, класс поведения нужно привязать к клиенту
    client = new ApiSoapPortClient();
    client.Endpoint.EndpointBehaviors.Add( new CustomBehavior() );
    Ответ написан
    Комментировать
  • Как сделать broadcast рассылку сообщений по UDP используя Socket?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Сам спросил, сам ответил.
    Оказывается, нужно было чуть внимательнее читать документацию, хотя там и не всё так очевидно.

    Цитата с сайта майкрософт:
    Если вы используете протокол без установления соединения в блокирующем режиме, SendTo будет блокироваться до отправки датаграммы. Если вы хотите отправить данные на широковещательный адрес, необходимо сначала вызвать SetSocketOption метод и установить параметр сокета в значение SocketOptionName.Broadcast . Кроме того, необходимо убедиться, что число отправленных байтов не превышает максимальный размер пакета для базового поставщика услуг. Если это так, датаграмма не будет отправлена и SendTo создаст исключение SocketException .

    Как следствие:
    socket.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.Broadcast, true );

    Ну и применять вместо Send нужно SendTo, просто ему вместо конкретного адреса в EndPoint передавать
    IPEndPoint targetEndPoint = new IPEndPoint( IPAddress.Broadcast, 27000 );
    Ответ написан
    Комментировать
  • Как создать интернет радио средствами c# (интеграция с известными серверами)?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Спустя пару дней изучения информации и общения с авторами сервера IceCast я-таки нашёл решение.
    Может быть оно кому-то будет полезным.

    Собственно, я решение оформил в виде dll'ки, которую легко можно подключить к проекту и запустить трансляцию двумя строками кода, но там же есть все исходники и материалы, которые я для этого использовал, так что можно мою библиотеку проходить мимо и просто пользоваться оригиналом.

    Ссылка на проект

    UDP
    Для удобства создал пакет на Nuget
    Ответ написан
    Комментировать
  • Как в юнити реализовать механику изменения ландшафта игроком?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    Если ландшафт реализован посредством террейна, то у юнити для этого есть АПИ, почитать можно
    в ОФ документации
    Если нет, то и методы нужно искать иные.
    Ответ написан
    Комментировать
  • Как правильно сделать несколько окон в wpf с использованием mvvm паттерна?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    На самом деле тут нет никакого секрета.
    Статей нет скорее всего по тому, что вопрос не так сложен, как может показаться.
    Для этого достаточно просто в дата контекст второго окна указать ту же view model
    Буквально тот же экземпляр и всё.

    Вы можете это сделать в момент создания экземпляра нового окна, передав this в его конструктор, например.
    Ответ написан
    2 комментария