|
分類:[C#]
C++ソースコードをもとに、C#で同じプログラムをつくることになりました。
Winsock.dllを使用したプログラムになっていて下記のようにWinsockの初期化をするために
WSAStartup()を利用しているようですが、C#ではどのようにコードを書いたら良いでしょうか?
WSADATA wsadata;
int a ;
a = WSAStartup(0x0101,&wsadata);
if(a!=0)
{return;}
調べるとこんな感じで書いてあったのですが、、、
[StructLayout(LayoutKind.Sequential)]
internal struct WSAData
{
public short wVersion;
public short wHighVersion;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)]
public string szDescription;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)]
public string szSystemStatus;
public short iMaxSockets;
public short iMaxUdpDg;
public int lpVendorInfo;
}
[DllImport("wsock32.dll")]
internal static extern int WSAStartup([In] short wVersionRequested,[Out] out WSAData lpWSAData);
[DllImport("wsock32.dll")]
internal static extern int WSACleanup();
private void button2_Click(object sender, EventArgs e)
{
WSAData dummy;
WSAStartup(0x0002, out dummy);
}
|