Socketクラスを使ってファイルをダウンロードする方法
VB.NET
Dim server As String = "wwwサーバーURL.co.jp"
Dim path As String = "/"
Dim reqMsg As String = "GET " + path + " HTTP/1.1" + vbCrLf + _
"Host: " + server + vbCrLf + "Connection: Close" + vbCrLf + vbCrLf
Dim enc As System.Text.Encoding = _
System.Text.Encoding.GetEncoding("shift_jis")
Dim reqBytes As Byte() = enc.GetBytes(reqMsg)
Dim hostadd As System.Net.IPAddress = _
System.Net.Dns.Resolve(server).AddressList(0)
Dim ephost As New System.Net.IPEndPoint(hostadd, 80)
Dim sock As New System.Net.Sockets.Socket( _
System.Net.Sockets.AddressFamily.InterNetwork, _
System.Net.Sockets.SocketType.Stream, _
System.Net.Sockets.ProtocolType.Tcp)
sock.Connect(ephost)
sock.Send(reqBytes, reqBytes.Length, _
System.Net.Sockets.SocketFlags.None)
Dim resBytes(1023) As Byte
Dim mem As New System.IO.MemoryStream
While True
Dim resSize As Integer = _
sock.Receive(resBytes, resBytes.Length, _
System.Net.Sockets.SocketFlags.None)
If resSize = 0 Then
Exit While
End If
mem.Write(resBytes, 0, resSize)
End While
Dim resMsg As String = _
enc.GetString(mem.GetBuffer(), 0, CInt(mem.Length))
mem.Close()
sock.Shutdown(System.Net.Sockets.SocketShutdown.Both)
sock.Close()
Console.WriteLine(resMsg)
Network programming in .NET: C# & Visual Basic …
C#
string server = "wwwサーバーURL.co.jp";
string path = "/";
string reqMsg = "GET " + path + " HTTP/1.1\r\n" +
"Host: " + server + "\r\n" +
"Connection: Close\r\n\r\n";
System.Text.Encoding enc =
System.Text.Encoding.GetEncoding("shift_jis");
byte [] reqBytes = enc.GetBytes(reqMsg);
System.Net.IPAddress hostadd =
System.Net.Dns.Resolve(server).AddressList[0];
System.Net.IPEndPoint ephost =
new System.Net.IPEndPoint(hostadd, 80);
System.Net.Sockets.Socket sock =
new System.Net.Sockets.Socket(
System.Net.Sockets.AddressFamily.InterNetwork,
System.Net.Sockets.SocketType.Stream,
System.Net.Sockets.ProtocolType.Tcp);
sock.Connect(ephost);
sock.Send(reqBytes, reqBytes.Length,
System.Net.Sockets.SocketFlags.None);
byte [] resBytes = new byte[1024];
System.IO.MemoryStream mem = new System.IO.MemoryStream();
while (true)
{
int resSize =
sock.Receive(resBytes, resBytes.Length,
System.Net.Sockets.SocketFlags.None);
if (resSize == 0)
break;
mem.Write(resBytes, 0, resSize);
}
string resMsg = enc.GetString(mem.GetBuffer(), 0, (int) mem.Length);
mem.Close();
sock.Shutdown(System.Net.Sockets.SocketShutdown.Both);
sock.Close();
Console.WriteLine(resMsg);
Network programming in .NET: C# & Visual Basic …