[DllImport("ws2_32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
public static extern int WSAStringToAddress(
string addressString,
System.Net.Sockets.AddressFamily addressfamily,
IntPtr lpProtocolInfo,
ref SockAddr socketAddress,
ref int socketAddressSize);
Declare Function WSAStringToAddress Lib "ws2_32.dll" (TODO) As TODO
WSADATA data = new WSADATA();
SockAddr sockAddr = new SockAddr();
IntPtr pSockAddr = IntPtr.Zero;
if (WSAStartup(0x201, ref data) == ERROR_SUCCESS)
{
int sockAddrSize = Marshal.SizeOf(sockAddr);
int result = WSAStringToAddress(
"1.2.3.4",
System.Net.Sockets.AddressFamily.InterNetwork,
IntPtr.Zero,
ref sockAddr,
ref sockAddrSize);
WSACleanup();
}
if (result != ERROR_SUCCESS)
{
throw new Win32Exception(result);
}
pSockAddr = Marshal.AllocHGlobal(Marshal.SizeOf(sockAddr));
Marshal.StructureToPtr(sockAddr, pSockAddr, true);