我正在尝试学习如何使用套接字来发送网络请求,但我很难在网上找到任何东西。我找到了很多“客户” - >使用套接字的“服务器”教程,但没有涉及制作Web请求,刮刀等的内容。
我希望能够使用套接字开发多线程应用程序,因为我听说它们更容易使用。
答案 0 :(得分:3)
我正在尝试学习如何使用套接字来发送网络请求,但我很难在网上找到任何东西。
如果通过网络请求表示HTTP请求,那么使用套接字将是太低级别。为此,我建议您使用WebClient或WebRequest。例如,以下是如何向google.com发送HTTP请求并获取生成的HTML:
using System;
using System.Net;
class Program
{
static void Main()
{
using (var client = new WebClient())
{
var result = client.DownloadString("http://www.google.com");
Console.WriteLine(result);
}
}
}
更新:
根据评论部分的要求,这是一个使用套接字学习的例子:
using System;
using System.IO;
using System.Net.Sockets;
class Program
{
static void Main()
{
using (var client = new TcpClient("www.google.com", 80))
using (var stream = client.GetStream())
using (var writer = new StreamWriter(stream))
using (var reader = new StreamReader(stream))
{
writer.Write(
@"GET / HTTP/1.1
Host: www.google.com
Connection: close
");
writer.Flush();
Console.WriteLine(reader.ReadToEnd());
}
}
}
免责声明:绝对不要在任何实际应用程序中编写任何类似的代码。