英語で読む

次の方法で共有


AddressFamily 列挙型

定義

Socket クラスのインスタンスが使用できるアドレッシング スキームを指定します。

C#
public enum AddressFamily
継承
AddressFamily

フィールド

名前 説明
AppleTalk 16

AppleTalk アドレス。

Atm 22

ネイティブ ATM サービス アドレス。

Banyan 21

Banyan アドレス。

Ccitt 10

X.25 などの CCITT プロトコルのアドレス。

Chaos 5

MIT CHAOS プロトコルのアドレス。

Cluster 24

Microsoft クラスター製品のアドレス。

ControllerAreaNetwork 65537

Controller Area Network のアドレス。

DataKit 9

Datakit プロトコルのアドレス。

13

ダイレクト データリンク インターフェイス アドレス。

DecNet 12

DECnet アドレス。

Ecma 8

ECMA (European Computer Manufacturers Association) アドレス。

FireFox 19

FireFox アドレス。

HyperChannel 15

NSC Hyperchannel アドレス。

Ieee12844 25

IEEE 1284.4 ワークグループ アドレス。

3

ARPANET IMP アドレス。

InterNetwork 2

IP version 4 のアドレス。

InterNetworkV6 23

IP version 6 のアドレス。

Ipx 6

IPX アドレスまたは SPX アドレス。

Irda 26

IrDA アドレス。

Iso 7

ISO プロトコルのアドレス。

Lat 14

LAT アドレス。

Max 29

MAX アドレス。

NetBios 17

NetBios アドレス。

NetworkDesigners 28

Network Designers OSI ゲートウェイ対応プロトコルのアドレス。

NS 6

Xerox NS プロトコルのアドレス。

Osi 7

OSI プロトコルのアドレス。

Packet 65536

低レベル パケットのアドレス。

Pup 4

PUP プロトコルのアドレス。

Sna 11

IBM SNA アドレス。

Unix 1

Unix local to host アドレス。

Unknown -1

未確認のアドレス ファミリ。

Unspecified 0

指定のないアドレス ファミリ。

VoiceView 18

VoiceView アドレス。

次の例では、InterNetwork AddressFamilyを使用して を作成Socketします。

C#
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

public class Sample
{

  public static string DoSocketGet(string server)
  {
    //Set up variables and String to write to the server.
    Encoding ASCII = Encoding.ASCII;
    string Get = "GET / HTTP/1.1\r\nHost: " + server +
                 "\r\nConnection: Close\r\n\r\n";
    Byte[] ByteGet = ASCII.GetBytes(Get);
    Byte[] RecvBytes = new Byte[256];
    String strRetPage = null;

    // IPAddress and IPEndPoint represent the endpoint that will
    //   receive the request.
    // Get first IPAddress in list return by DNS.

    try
    {

      // Define those variables to be evaluated in the next for loop and
      // then used to connect to the server. These variables are defined
      // outside the for loop to make them accessible there after.
      Socket s = null;
      IPEndPoint hostEndPoint;
      IPAddress hostAddress = null;
      int conPort = 80;

      // Get DNS host information.
      IPHostEntry hostInfo = Dns.GetHostEntry(server);
      // Get the DNS IP addresses associated with the host.
      IPAddress[] IPaddresses = hostInfo.AddressList;

      // Evaluate the socket and receiving host IPAddress and IPEndPoint.
      for (int index=0; index<IPaddresses.Length; index++)
      {
        hostAddress = IPaddresses[index];
        hostEndPoint = new IPEndPoint(hostAddress, conPort);


        // Creates the Socket to send data over a TCP connection.
        s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );


        // Connect to the host using its IPEndPoint.
        s.Connect(hostEndPoint);

        if (!s.Connected)
        {
          // Connection failed, try next IPaddress.
          strRetPage = "Unable to connect to host";
          s = null;
          continue;
        }

        // Sent the GET request to the host.
        s.Send(ByteGet, ByteGet.Length, 0);

      } // End of the for loop.


      // Receive the host home page content and loop until all the data is received.
      Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
      strRetPage = "Default HTML page on " + server + ":\r\n";
      strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);

      while (bytes > 0)
      {
        bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
        strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
      }

    } // End of the try block.

    catch(SocketException e)
    {
      Console.WriteLine("SocketException caught!!!");
      Console.WriteLine("Source : " + e.Source);
      Console.WriteLine("Message : " + e.Message);
    }
    catch(ArgumentNullException e)
    {
      Console.WriteLine("ArgumentNullException caught!!!");
      Console.WriteLine("Source : " + e.Source);
      Console.WriteLine("Message : " + e.Message);
    }
    catch(NullReferenceException e)
    {
      Console.WriteLine("NullReferenceException caught!!!");
      Console.WriteLine("Source : " + e.Source);
      Console.WriteLine("Message : " + e.Message);
    }
    catch(Exception e)
    {
      Console.WriteLine("Exception caught!!!");
      Console.WriteLine("Source : " + e.Source);
      Console.WriteLine("Message : " + e.Message);
    }

    return strRetPage;
}
   public static void Main()
   {
      Console.WriteLine(DoSocketGet("localhost"));
   }
 }

注釈

メンバーは AddressFamily 、 がアドレスの解決に使用する Socket アドレス指定スキームを指定します。 たとえば、InterNetwork は、 がエンドポイントに接続するときに Socket IP バージョン 4 のアドレスが必要であることを示します。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください