C# EasyHook SOCKET ConnectC#

Место общения программистов C#
Ответить
Anonymous
 C# EasyHook SOCKET Connect

Сообщение Anonymous »

Основываясь на моем вопросе, C# IVI VISA (например: NI VISA) TCP Keep Alive Я попытался использовать EasyHook, чтобы исправить то, как NI VISA открывает SOCKET-соединение. Наконец, я хотел бы изменить настройки поддержания активности в методе ConnectHook (пока его там нет).
У меня есть следующий код:

Код: Выделить всё

[UnmanagedFunctionPointer(CallingConvention.StdCall, SetLastError = true)]
delegate int ConnectDelegate(IntPtr socket, IntPtr sockaddr, int namelen);

[DllImport("ws2_32.dll", SetLastError = true, EntryPoint = "connect")]
static extern int Connect(IntPtr socket, IntPtr sockaddr, int namelen);

static int ConnectHook(IntPtr socket, IntPtr sockaddr, int namelen)
{
Console.WriteLine("SOCKET Connect");
int s = Connect(socket, sockaddr, namelen);
return s;
}
и

Код: Выделить всё

static void Main(string[] args)
{
string rn = "TCPIP::10.0.0.2::hislip0::INSTR";
//string rn = "TCPIP::10.0.0.2::inst0::INSTR"; // VXI-11

// Make sure ws2_32.dll is loaded
var vi = GlobalResourceManager.Open(rn) as IMessageBasedSession;
vi.Dispose();

LocalHook hook = LocalHook.Create(LocalHook.GetProcAddress("ws2_32.dll", "connect"),
new ConnectDelegate(ConnectHook),
null);
hook.ThreadACL.SetInclusiveACL(new int[] { 0 });

// Connect
vi = GlobalResourceManager.Open(rn) as IMessageBasedSession;
// IDN query
vi.RawIO.Write("*IDN?");
Console.WriteLine(vi.RawIO.ReadString());
// Sleep to monitor keep alive traffic using Wireshark
Thread.Sleep(10 * 1000);
// IDN query
vi.RawIO.Write("*IDN?");
Console.WriteLine(vi.RawIO.ReadString());
// Disconnect
vi.Dispose();
hook.Dispose();
}
Приведенный выше исходный код находится в одной сборке (консольное приложение). Но мой метод ConnectHook вызывается позже, когда запущен GlobalResourceManager.Open(rn).
Я могу запустить и подключить пример MessageBeep из https://easyhook.github.io/tutorials/cr ... lhook.html.

Подробнее здесь: https://stackoverflow.com/questions/798 ... et-connect
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»