“System.Net.Sockets.Socket不包含'SendTo'的定义”

时间:2012-01-31 17:34:27

标签: c# visual-studio-2010 sockets windows-phone-7.1 system.net

我正在尝试为Windows Phone 7制作一个基本的客户端 - 服务器应用程序(使用Mango 7.1)。目前,我只是将MSDN中的示例代码(此处为:http://msdn.microsoft.com/en-us/library/tst0kwb1.aspx)用于粘贴到Visual Studio中的方法的UDP客户端。出于某种原因,虽然我有所有正确的引用,但我被告知“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 个答案:

答案 0 :(得分:4)

手机上没有.NET 4.0 。您正在构建一个手机应用程序,因此您需要坚持使用手机支持的API - 查看Silverlight version of System.Net.Sockets并且在任何类型中,您只能使用旁边带有电话图标的成员。< / p>

Windows Phone 7通常不支持{em>同步 API,例如Socket.SendTo,因此您需要使用Socket.SendToAsync

答案 1 :(得分:0)

您可能需要在项目引用中将System.Net添加为引用的程序集。 “using”语句只限定源代码中的命名空间,它与编译器实际找到引用的代码没有任何关系。