- 題名: Socketクラスについて
- 日時: 2005/02/02 17:49:00
- ID: 8866
- この記事の返信元:
- (なし)
- この記事への返信:
- [8868] Re[1]: Socketクラスについて2005/02/02 18:06:09
- ツリーを表示
シャノンさん こんにちは。 返信有難うございます。 早速試してみましたが、コネクト時に待ち状態になってしまいエラーをなってしまいます。多分「このセキュリティは信頼する会社から発行・・・」の警告が出ていると思われます。 VB.net初心者の為、クラスの登録などが間違っているのかもしれませんが、何か考えられるこがございましたらご教授お願い致します。 ソースリスト Module Module1 Sub Main() System.Net.ServicePointManager.CertificatePolicy = New MyPolicy 'GETリクエストを送信するサーバー名とパス Dim server As String = "testsv2" Dim path As String = "/servlet/CsvDownloadServlet?id=login" Dim reqMsg As String = _ "GET " + path + " HTTP/1.0" + ControlChars.CrLf + ControlChars.CrLf '文字列をbyte配列に変換 'Dim enc As System.Text.Encoding = System.Text.Encoding.ASCII Dim enc As System.Text.Encoding = System.Text.Encoding.Default Dim reqBytes As Byte() = enc.GetBytes(reqMsg) 'ホスト名からIPアドレスを取得 Dim hostadd As System.Net.IPAddress = _ System.Net.Dns.Resolve(server).AddressList(0) Dim ephost As New System.Net.IPEndPoint(hostadd, 80) 'Socketの作成 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) '接続の確認 If sock.Connected = False Then Console.WriteLine("接続できませんでした。") Return End If 'リクエストメッセージを送信 sock.Send(reqBytes, reqBytes.Length, _ System.Net.Sockets.SocketFlags.None) '受信する Dim resMsg As String = "" Dim resBytes(255) As Byte While True Dim resSize As Integer = _ sock.Receive(resBytes, resBytes.Length, _ System.Net.Sockets.SocketFlags.None) If resSize = 0 Then Exit While End If resMsg += enc.GetString(resBytes, 0, resSize) End While '閉じる sock.Shutdown(System.Net.Sockets.SocketShutdown.Both) sock.Close() '受信したメッセージを表示する Console.WriteLine(resMsg) End Sub End Module Public Class MyPolicy Implements System.Net.ICertificatePolicy Public Function CheckValidationResult1(ByVal srvPoint As System.Net.ServicePoint, ByVal certificate As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal request As System.Net.WebRequest, ByVal certificateProblem As Integer) As Boolean Implements System.Net.ICertificatePolicy.CheckValidationResult If certificateProblem = 0 Or certificateProblem = -2146762487 Or certificateProblem = -2146762495 Or certificateProblem = -2146762481 Then Return True Else Return False End If End Function End Class
分類:[.NET]
Socketクラスを使ってHTTPサーバーにGET要求し、応答を受信する方法のサンプルを拝見しましたが、この方法でHTTPSを使ったGET要求に対し、応答を受信する方法を教えて下さい。