zoukankan      html  css  js  c++  java
  • Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程

    学习资料参考:

    1、http://www.icoolxue.com/

    2、

    1、网络编程的基础概念。

      TCP/IP协议;Socket编程;IP地址。

      中国和美国之间,海底光缆是如何横跨太平洋的。“所谓的铺设,就是直接扔进海里,只不过再扔之前需要勘探光缆经过的地区的年水流数据,海域水深等情况,基本都是扔在水比较浅且水流平稳的地区。”目前,同样有卫星无线通信。

      网络通信的协议约束;通信协议的分层思想(编程的时候,无需了解光缆,还是宽带);

      在网络编程中,有两个问题:1.如何准确的定位网络上的一台或多台主机。2.如何在两个主机之间进行高效可靠的传输。

      两个主机要互相通信:1.要知道双方的IP地址。2.要遵循一定的规则。(OSI和TCP/IP)事实上国际标准采用了:TCP/IP。事实上的标准,不是国际定义的标准,是在编程中实际运用的,在网络中跑的就是这一套规则。他们分了四层:网络接口层、IP层、传输层、应用层。

      运输层,主要有:TCP/IP协议和UDP协议。TCP/IP协议:进程(两个应用程序)之间进行通信时,建立连接,通信,释放连接。UDP协议:进程之间不必先建立连接,也就不需要释放连接,故而减少了开销和时延。(QQ聊天需要少开销;游戏同步需要避免时延)

      域名和IP地址。域名/IP地址:http://www.hp.com / 15.240.238.60.DNS负责将域名转换为IP地址。在java.net.*包中,有类InetAddress,它的.getHostName()和.getHostAddress()可以实现域名和IP地址的对应转换。

      两个Java应用程序通过一个双向的通信链路连接,实现数据交换,这个双向链路的一端称为一个Socket。Socket通常用来实现Client-Server的连接。在Java.net.*;包中定义了两个类,Socket类和ServerSocket类,其分别用来实现双向连接的Client和Server端。建立连接时,所需的寻址信息为远程计算机的IP地址和端口号。我们这些是基于TCP的。

      一台机器上最多有:65536个端口号。如果一个端口号代表一个应用程序的话,可以有65536个端口。1024是一个分界线;1~1023都是为系统保留的。如:http://www.google.com:80 代表了端口号80.TCP端口有65536个,UDP端口同样也有65536个,TCP的8080和UDP的8080是不一样的。我们上面说的都是Servlet端上的。。。Client上的端口是OS随机分配的。

      我们日常QQ语音通讯中的杂音等问题,是由于UDP这个无连接协议来决定的。

    2、InetAddress类代码练习。

    import java.net.*;
    
    public class TestNet {
        public static void main(String args[]){
            InetAddress address;
            try {
                address = InetAddress.getByName("www.hp.com");
                System.out.println(address.toString());
                System.out.println(address.getHostName());
                System.out.println(address.getHostAddress());
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    }

        如上,我们通过.getHostName()和.getHostAddress()方法,轻松的实现了域名和IP地址的映射。Java号称是Internet上的语言,它对很多网络中的东西做了封装好的类,提供了很多的便捷。

    3、ServerSocket和 。

      服务器端时刻不停的运行,等待着客户端的连接。所以服务器端的进程是阻塞似的。

    4、同时在elcipse运行服务端程序和客户端程序。

      参考地址:http://www.oseye.net/user/kevin/blog/280

      Eclipse中多个console的使用:

      在Eclipse中开了两个console,但是他们的操作总是同步的。不能搞在同一个项目中,Server端和Client端要在两个JavaProject中,要分开来的。

    5、

  • 相关阅读:
    【转】自旋锁及其衍生锁
    【转】 android 4.4 Step Counter Sensor计步器的使用
    【转】ListView与RadioButton组合——自定义单选列表
    【转】带checkbox的ListView实现(二)——自定义Checkable控件的实现方法
    【转】Android 带checkbox的listView 实现多选,全选,反选 -- 不错
    【转】linux 原子整数操作详解
    计算机科学界名言
    计算机科学界名言
    益智小游戏(app)
    益智小游戏(app)
  • 原文地址:https://www.cnblogs.com/RunForLove/p/4342510.html
Copyright © 2011-2022 走看看