Нашел что вызывает проблему в библиотеке. По аналогии с тем как это реализовано в библиотеке написал код, который ведет себя точно так же, но почему это так, никак не могу понять
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
namespace test2
{
internal class MyClass
{
public MyClass()
{
}
IAsyncResult result;
public void start()
{
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
result = Dns.BeginGetHostEntry("login.icq.com", new AsyncCallback(CreateDCSEndDnsLookup), s);
}
private static void CreateDCSEndDnsLookup(IAsyncResult ar)
{
Console.WriteLine(" in CreateDCSEndDnsLookup");
Socket s = ar.AsyncState as Socket;
IPHostEntry hosts = null;
hosts = Dns.EndGetHostEntry(ar);
IPAddress address = hosts.AddressList[0];
IPEndPoint ipep = new IPEndPoint(address, 5190);
try
{
Console.WriteLine("Establishing Connection");
s.BeginConnect(ipep, new AsyncCallback(Connect_Callback), s);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Console.WriteLine(" out CreateDCSEndDnsLookup");
}
private static void Connect_Callback(IAsyncResult ar)
{
Console.WriteLine(" in Connect_Callback");
}
}
class Program
{
static void Main(string[] args)
{
MyClass mc = new MyClass();
mc.start();
Thread.Sleep(100000);
}
}
}
тоесть если я подключен к интернету, устанавливается подключение. А если я подключен к интернету, но фаервол блокирует дейтвия программы, то просходит Access violation exception.
Почему?