Я создаю класс UDP Daemon в C #, после установки точки останова в Visual Studio я вижу «Попытка операции не поддерживается для типа объекта, на который ссылаются».в пределах this::ip::Address::ScopeId::base
.ScopeId выдает исключение System.Net.Sockets.SocketException
.Код ошибки: 10045 / OperationNotSupported.
Телефонный код:
namespace Foo.Tester
{
class Program
{
static void Main(string[] args)
{
var TestDaemon = new UDPDaemon();
TestDaemon.port = 9999;
TestDaemon.Start();
...
UDPDaemon Класс:
{
public class UDPDaemon
{
public int receivedDataLength;
public byte[] data;
public IPEndPoint ip;
public Socket socket;
public IPEndPoint sender;
public EndPoint Remote;
public string raw;
public int port { get; set; }
public LogRow row;
public UDPDaemon()
{
ip = new IPEndPoint(IPAddress.Any, port);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
sender = new IPEndPoint(IPAddress.Any, 0);
Remote = (EndPoint)(sender);
}
public void Start()
{
socket.Bind(ip);
while (true)
{
data = new byte[1024];
receivedDataLength = socket.ReceiveFrom(data, ref Remote);
raw = Encoding.ASCII.GetString(data, 0, receivedDataLength);
row = new LogRow(raw);
//Will eventually move to Queue, but just print it for now
Console.WriteLine(row.ClientIp);
}
}
}
}
- Что вызывает это исключение и что делаетозначает исключение?
- Почему я вижу исключение, только если я установил точку останова в VS?
- Я только начал изучать этот язык, так что если в коде что-то не так, то этохорошо знать.