zoukankan      html  css  js  c++  java
  • Socket网络编程学习笔记(1)

     

    虽然天天上博客园欣赏各位“大侠”的杰作,偶然回首,突然发现自己已成“潜水者”久矣。本来对于自己有限的水平,有点不好意思在此发贴,不过潜伏久了,才慢慢意识到老是通过浏览他人的文章虽然能够提高自己能力,能够及时的获取新技术新思想,但却只能停留在他人的思想上。通过学习,加上自己的想法,再写出来,让大家来指证错误,不仅能够巩固自己的知识,也可以让一些跟我一样迷惘的朋友们不用再去走一些弯路,岂不是两全其美,本着这样的想法,打算把自己平时的所学所想都写下来,欢迎各路朋友批评指证,因为你的批评和建议能够让我更迅速的得到提高。
          好了,讲了这么多废话,也该言归正传了。由于工作上需要,最近恶补了一下socket网络编程,整理了一下资料,把它放上来,希望能够对一些朋友有帮助。
          在讲Socket编程前,我们先来看一下几个最常用的类和方法,相信这些东西能让你事半功倍。
          一、IP地址操作类
          1、IPAddress类
          a、在该类中有一个 Parse()方法,可以把点分的十进制IP表示转化成IPAddress类,方法如下:
          IPAddress address = IPAddress.Parse(“192.168.0.1”);

          b、IPAddress提供4个只读字段
          
          Any   用于代表本地系统可用的任何IP地址
          Broadcase 用于代表本地网络的IP广播地址
          Loopback 用于代表系统的回送地址    
          None 用于代表系统上没有网络接口

          其中IPAddress.Any最常用可以用来表示本机上所有的IP地址,这对于socket服务进行侦听时,最方便使用,不用对每个IP进行侦听了。而IPAddress.Broadcase可用来UDP的IP广播,这些具体讲socket时再详细介绍。

         2、IPEndPoint            
          我们可以通过二种构造方法来创建IPEndPoint类:
          a、IPEndPoint(long address, int port)
          b、IPEndPoint(IPAddress address, int port)

          四个属性:
       
          Address
          AddressFamily
          Port
          MaxPort
          MinPort

          这些应该从名字上就很好理解,不再一一介绍。IPEndPoint其实就是一个IP地址和端口的绑定,可以代表一个服务,用来Socket通讯。

           二、DNS相关类
          DNS类有四个静态方法,来获取主机DNS相关信息,
          1、GetHostName() 
          通过Dns.GetHostName()可以获得本地计算机的主机名
       
          2、GetHostByName()
          根据主机名称,返回一个IPHostEntry 对象:
           
          IPHostEntry GetHostByName(string hostName)

          其中IPHostEntry把一个DNS主机名与一个别名和IP地址的数组相关联,包含三个属性:
          *AddressList:一个IPAddress对象的数组
          *Aliases:一个字符串对象数组
          *HostName:一个用于主机名的字符串对象

          3、GetHostByAddress()

          类似于GetHostByName(),只不过这里的参数是IP地址,而不是主机名,也返回一个IPHostEntry对象。

          IPHostEntry GetHostByAddress(IPAddress address)
          IPHostEntry GetHostByAddress(string address)

          4、Resolve()

          当我们不知道输入的远程主机的地址是哪种格式时(主机名或IP地址),用以上的二种方法来实现,我们可能还要通过判断客户输入的格式,才能正确使用,但Dns类提供一更简单的方法Resolve(),该方法可以接受或者是主机名格式或者是IP地址格式的任何一种地址,并返回 IPHostEntry对象。

          常用方法就写到这里了,当然针对网络编程不可能只有这么几个类和方法,只不过这几个我们最常用,也非常的简单。不过因为本人比较懒惰,没有放一些具体的实例上去,请见谅,:)。

  • 相关阅读:
    Tomcat 服务器体系结构
    tomcat的下载和启动
    tomcat解决端口号占用问题
    我的wmware
    Xshell的使用
    GCC的-wl,-rpath=参数
    Matlab图像处理(01)-Matlab基础
    CMake最好的学习资料
    使用valgrind进行内存泄漏和非法内存操作检测
    CLion提示can't find stdio.h等错误
  • 原文地址:https://www.cnblogs.com/chorrysky/p/795268.html
Copyright © 2011-2022 走看看