• 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对象。

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

  • 相关阅读:
    Java 8 Lambda 表达式
    OSGi 系列(十二)之 Http Service
    OSGi 系列(十三)之 Configuration Admin Service
    OSGi 系列(十四)之 Event Admin Service
    OSGi 系列(十六)之 JDBC Service
    OSGi 系列(十)之 Blueprint
    OSGi 系列(七)之服务的监听、跟踪、声明等
    OSGi 系列(六)之服务的使用
    OSGi 系列(三)之 bundle 事件监听
    OSGi 系列(三)之 bundle 详解
  • 原文地址:https://www.cnblogs.com/chorrysky/p/795268.html
Copyright © 2020-2023  润新知