对于熟悉 Winsock 的开发者或那些目标是套接字所提供的控件级的人们来说,Net classes Socket API 使用起来的感觉就象您已熟悉和喜爱的 Win32 API 一样。套接字类在 Net classes 中充当从管理代码到本地代码的过渡点。在大多数情况下,套接字只是将数据汇集到其本地的 Win32 套接字中,并进行任何必要的安全检查。下面的示例函数显示如何使用套接字类将数据发送到 HTTP 服务器并读取响应。
使用 C#
public string DoSocketGet(string server)
{
// 设置要写入到服务器的变量和字符串
Encoding ASCII = Encoding.ASCII;
string Get = "GET / HTTP/1.1
Host: " + server +
"
Connection: Close
";
Byte[] ByteGet = ASCII.GetBytes(Get);
Byte[] RecvBytes = new Byte[256];
// IPAddress 和 IPEndPoint 表示接收请求的端点
IPAddress hostadd = DNS.Resolve(server);
IPEndPoint EPhost = new IPEndPoint(hostadd, 80);
StringBuilder sb = new StringBuilder();
// 创建通过 TCP 发送数据的套接字
Socket s = new Socket(AddressFamily.AfINet,
SocketType.SockStream,
ProtocolType.ProtTCP);
// 使用 IPEndPoint 连接到主机
if (s.Connect(EPhost) != 0)
{
return "Unable to connect to host";
}
// 将 GET 文本发送到主机
s.Send(ByteGet, ByteGet.Length, 0);
// 接收默认页面,循环直至接收到所有字节
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
sb.Append( "Default HTML page on " + server + ":
");
sb.Append( ASCII.GetString(RecvBytes, 0, bytes));
while (bytes > 0)
{
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
sb.Append( ASCII.GetString(RecvBytes, 0, bytes));
}
return sb.ToString();
}
此文章不能满足您的需求?那就就Google一下吧:)

