«System.Net.Sockets.Socket не содержит определения для« SendTo »» - PullRequest
2 голосов
/ 31 января 2012

Я пытаюсь сделать базовое клиент-серверное приложение для Windows Phone 7 (используя Mango 7.1). На данный момент у меня есть только пример кода из MSDN (здесь: http://msdn.microsoft.com/en-us/library/tst0kwb1.aspx) для UDP-клиента, вставленный в метод в Visual Studio. По какой-то причине, хотя у меня есть все правильные ссылки, мне говорят, что «System.New.Sockets.Socket не содержит определения для« SendTo »и нет метода расширения« SendTo », принимающего первый аргумент типа« System.Net.Sockets.Socket ». У меня есть .NET 4.0 который предположительно поддерживает SendTo, как используется в примере кода. Не уверен, что делать, любая помощь будет оценена.

Вот код, если он нужен, просто имейте в виду, что я буквально вставил его из примера кода и пока что вообще не помещал его в контекст:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Net.Sockets;
using System.Text;

namespace PhoneApp1
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }

        private void startButton_Click(object sender, RoutedEventArgs e)
        {

        var s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
            ProtocolType.Udp);

        IPAddress broadcast = IPAddress.Parse("192.168.1.255");

        byte[] sendbuf = Encoding.ASCII.GetBytes(args[0]);
        IPEndPoint ep = new IPEndPoint(broadcast, 11000);

        s.SendTo(sendbuf, ep);



        Console.WriteLine("Message sent to the broadcast address");

        }


    }
}

Ответы [ 2 ]

4 голосов
/ 31 января 2012

У вас нет .NET 4.0 на телефоне . Вы создаете приложение для телефона, поэтому вам нужно придерживаться API-интерфейсов, поддерживаемых на телефоне - посмотрите Silverlight версию System.Net.Sockets, и в любом типе вы ограничены участниками с рядом с ними значок телефона.

В частности, синхронные API, такие как Socket.SendTo, обычно не поддерживаются в Windows Phone 7 - поэтому вам нужно будет использовать Socket.SendToAsync.

0 голосов
/ 01 февраля 2012

Возможно, вам нужно добавить System.Net в качестве сборочной сборки в ссылках проекта. Оператор «using» просто определяет пространства имен в исходном коде, он не имеет ничего общего с компилятором, который фактически находит ссылочный код.

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