我正在尝试为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");
}
}
}
答案 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”语句只限定源代码中的命名空间,它与编译器实际找到引用的代码没有任何关系。