网络编程

来源:互联网 发布:短信网络陷阱 编辑:程序博客网 时间:2024/05/21 10:05
网络编程:网络编程主要用于解决计算机与计算机(手机、平板。。。)之间的数据传输问题。
    web方向:
    Android:常用
网络编程:不需要基于html页面就可以达到数据之间的传输。比如:feiQ, QQ, 微信。。。。
网页编程:基于html页面的基础上进行数据的交互的。比如:天猫,京东。。。。
计算机网络:分布在不同地域的计算机通过外部设备链接起来达到了消息互通,资源共享的效果就称作为一个计算机网络。
网络通讯的三要素:
    1.IP
    2.端口号
    3.协议
====================IP====================
IP地址:
    Internet上的每台主机(Host)都有一个唯一的IP地址。
    IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。
     例如159.226.1.1。(四个字节) 
IP地址类别:
    IP地址是由网络号和主机号组成
    A类地址:8位网络位,24位主机位            2^24  政府单位用                                    
    B类地址: 16位网络位,16位主机位        2^16 事业单位(学校、银行)用
    C类地址: 24位网络位,8位主机位            2^8 私人使用
特殊的IP地址
   127.0.0.1 表示 本机回环地址
InetAddress(IP类)
    常用的方法:
    getLocalHost()   返回本地主机。
    getHostAddress() 返回 IP 地址字符串(以文本表现形式)。 
    getHostName()    获取此 IP 地址的主机名。
    getByName(String host) 在给定主机名的情况下确定主机的 IP 地址。 
    
    getAllByName(String host) 在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。
    
    
====================Port====================
Port地址
    如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口 可以有65536(即:2^16)个之多!
    端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。 
Port分类(0~65535)
    公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。 
    注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。我们可以用
    动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。
常用端口
    21    FTP        
    80    HTTP
    443  HTTPS
    
====================协议====================
网络通讯的协议:
    udp通讯协议的特点:
        将数据极其源和目的封装为数据包,不需要建立连接(面向无连接)。
        每个数据包大小限制在64K中。
        因为无连接,所以不可靠。
        因为不需要建立连接,所以速度快。
        比如:物管的对讲机,人说话,飞Q聊天,游戏。。。。。
    tcp通讯协议的特点:
        面向连接,有特有的通道。
        在连接中传输大数据量。
        通过三次握手机制连接,可靠协议。
        通信前必须建立连接,效率稍低。
        比如:打电话,QQ/飞Q文件的传输(电影下载)。。。。
  1. public class Demo1 {
  2. public static void main(String[] args) throws UnknownHostException {
  3. //getLocalHost()获取本机的IP地址对象
  4. InetAddress localHost = InetAddress.getLocalHost();
  5. System.out.println(localHost);
  6. System.out.println("IP地址:" + localHost.getHostAddress());
  7. System.out.println(" IP 地址的主机名:" + localHost.getHostName());
  8. InetAddress address = InetAddress.getByName("169.254.74.32");
  9. System.out.println("在给定主机名的情况下确定主机的 IP 地址:" + address.getHostAddress());
  10. System.out.println("主机名:" + address.getHostName());
  11. InetAddress[] allByName = InetAddress.getAllByName("111.161.78.250");
  12. for(InetAddress ip : allByName){
  13. System.out.println(ip.getHostAddress());
  14. System.out.println(ip.getHostName());
  15. }
  16. }
  17. }
0 0