zoukankan      html  css  js  c++  java
  • C#网络编程基础知识

    C#网络编程基础知识一

    1.IPAddress类 用于表示一个IP地址。IPAddress默认构造函数

    public IPAddress(long address);一般不用

    其中Parse()方法最常用于创建IPAddress实例,语法如下

    public static IPAddress Parse(string ipString);

    IPAddress类还提供了一些只读字段

    Any    0.0.0.0

    Broadcast 255.255.255.255

    Loopback 127.0.0.1

    None 255.255.255.255

    2.Dns

    静态类 提供域名解析功能

    常用方法

    GetHostEntry   将主机名或IP地址解析为IPHostEntry实例

    GetHostName  获取本地计算机的主机名

    Resolve      将DNS主机名或IP地址解析为IPHostEntry实例

     1 //参数 www.163.com
     2 
     3 if (args.Length != 1)
     4 
     5             {
     6 
     7                 Console.WriteLine("Parameter error!");
     8 
     9                 return;
    10 
    11             }
    12 
    13  
    14 
    15             //获得主机名
    16 
    17             IPHostEntry results = Dns.GetHostEntry(args[0]);
    18 
    19             Console.WriteLine("Host name:" + results.HostName);
    20 
    21  
    22 
    23  
    24 
    25             //使用循环显示别名列表
    26 
    27             foreach(string alias in results.Aliases)
    28 
    29             {
    30 
    31                 Console.WriteLine("Alias:" + alias);
    32 
    33             }
    34 
    35  
    36 
    37             //遍历地址列表
    38 
    39             foreach(IPAddress address in results.AddressList)
    40 
    41             {
    42 
    43                 Console.WriteLine("Address:" + address);
    44 
    45             }

    结果:

    Host name:1st.xdwscache.ourwebpic.com

    Address:218.77.2.32

    Address:218.76.105.75

    Address:218.75.225.188

    请按任意键继续. . .

    3.IPEndPoint类 将网络端点表示为IP地址和端口号

    构造函数

    1 public IPEndPoint(long address,int port);
    2 
    3 public IPEndPoint(IPAddress address,int port);
    4 
    5  

    示例:

     1 IPAddress newAddress = IPAddress.Parse("192.168.10.12");
     2 
     3             //创建IPEndPoint实例
     4 
     5             IPEndPoint ex = new IPEndPoint(newAddress, 8000);
     6 
     7  
     8 
     9             Console.WriteLine("The IPEndPoint is:{0}",ex.ToString());
    10 
    11             Console.WriteLine("The AddressFamily is:{0}", ex.AddressFamily);
    12 
    13             Console.WriteLine("The Address is:" + ex.Address + ",and the port is:" + ex.Port);
    14 
    15             Console.WriteLine("The Max Port Number is:{0}", IPEndPoint.MaxPort);
    16 
    17             Console.WriteLine("The Min Port Number is:{0}", IPEndPoint.MinPort);
    18 
    19  
    20 
    21             //用Port属性单独改变IPEndPoint对象的端口值
    22 
    23             ex.Port = 80;
    24 
    25             Console.WriteLine(ex.ToString());
    26 
    27  

    4.套接字

    多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议商品传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字的接口,区分不同应用程序进程间的通信和连接

    套接字原型

    1 System.Net.Sockets.Socket
    2 
    3 public Socket(AddressFamily addressFamily,SocketType socketType,ProtocolType protocolType);

    套接字与协议对应关系

    套接字类型

    协议对应关系

    Dgram(UDP)

    无连接通信

    Stream(TCP)

    面向连接的通信

    Raw(ICMP)

    ICMP协议

    Raw(Raw)

    简单IP包

    //使用套接字传输数据

    服务器端:

     1 //1.创建一个套接字
     2 //2.将所创建的套接字与本地的IPEndPoint绑定
     3 //3.设置套接字的模式为侦听模式
     4 //4.在套接字上接受接入的连接
     5 
     6 //设置IP地址和端口
     7 IPEndPoint newipep = new IPEndPoint(IPAddress.Any, 8030);
     8 //设置套接字
     9 Socket newSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    10 //绑定套接字
    11 newSocket.Listen(10);
    12 Socket client = newSocket.Accept();

    客户端:

    1 //1.打开套接字
    2             //2.连接远程主机
    3             //3.发送/接收数据
    4             //4.关闭套接字
    5 
    6             //设置IP地址和端口
    7             IPEndPoint newipep = new IPEndPoint(IPAddress.Parse("192.168.1.1"), 8050);
    8             //创建Socket对象
    9             Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  • 相关阅读:
    has a / is a 的区别
    Linux头文件作用
    转一篇Decorator模式的讲解文章
    歌手推荐kate st. john
    拷贝构造函数和赋值构造函数声明为私有的作用
    重新认识C++中new的用法
    系统程序员成长计划容器与算法(二)(下)
    深入C++的new
    歌手推荐Cara Dillon
    浅析一道C++设计面试题
  • 原文地址:https://www.cnblogs.com/zhaotianff/p/5527284.html
Copyright © 2011-2022 走看看