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、
Java基础复习笔记系列 九 网络编程的更多相关文章
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- Java基础复习笔记系列 三
前几节都是基础中的基础,从第三讲的笔记开始,每次笔记针对Java的一个知识块儿. Java异常处理 1.什么是异常? 异常是指运行期出的错误.比如说:除以一个0:数组越界:读取的文件不存在. 异常处 ...
- Java基础复习笔记系列 二
1.Java中Static的相关用法总结?(静态方法:静态变量:静态代码块) public static void main(String args[])执行的关键,在于有static.有了stati ...
- Java基础复习笔记系列 十三 反射机制
主题:Java反射机制 学习资料参考网址: 1.http://www.icoolxue.com 1.Java反射机制. 各种框架中都使用到了Java的反射机制. 两个类:java.lang.Class ...
- Java基础复习笔记基本排序算法
Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...
- Android(java)学习笔记77:网络编程的概述
计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网络编程 就 ...
随机推荐
- 大型网站系统与Java中间件实践
大型网站系统与Java中间件实践(贯通分布式高并发高数据高访问量网站架构与实现之权威著作,九大一线互联网公司CTO联合推荐) 曾宪杰 著 ISBN 978-7-121-22761-5 2014年4 ...
- SqlServer 错误1053:服务并未及时响应启动或控制请求
sqlserver 的登录用户修改成域账户后,启动不了 解决方法: 计算器管理选择管理员组 将域账户加入到管理员组即可
- salesforce 零基础学习(二十一)workflow Q&A
有一篇内容专门写了workflow,后来用到的时候心生疑问,不知道小伙伴有没有和我想法一样的,workflow具体内容原来已经说过,不在过多叙述,只说一下运行条件. 那就是:当满足运行条件时,执行相关 ...
- SQL Server 2012 T-SQL 新特性
序列 Sequence SQL Server 现在将序列当成一个对象来实现,创建一个序列的例子语法如下: CREATE SEQUENCE DemoSequence START WITH 1 INCRE ...
- 信息加密之Base64
Base64是一种最简单的简单的加密形式,经常被使用,记录一下,以便日后可以深入了解. jdk格式: //获得密钥Base64Encoder encoder = new Base64Encoder() ...
- Metronic – 超赞!基于 Bootstrap 的响应式后台管理模板
Metronic 是一套精美的响应式后台管理模板,基于强大的 Twitter Bootstrap 框架实现.Metronic 拥有简洁优雅的 Metro UI 风格界面,6 种颜色可选,76 个模板页 ...
- Cordova webapp实战开发:(5)如何写一个Andorid下自动更新的插件?
在 <Cordova webapp实战开发:(4)Android环境搭建>中我们搭建好了开发环境,也给大家布置了调用插件的预习作业,做得如何了呢?今天我们来学一下如何自己从头建立一个And ...
- Java之HashMap在多线程情况下导致死循环的问题
PS:不得不说Java编程思想这本书是真心强大.. 学习内容: 1.HashMap<K,V>在多线程的情况下出现的死循环现象 当初学Java的时候只是知道HashMap<K,V& ...
- Azure ARM (12) ARM模式下,在负载均衡器上设置多个公网IP地址
<Windows Azure Platform 系列文章目录> 最近在帮助一个客户设置WAF (Web Application Firewall),WAF厂商要求在负载均衡器上,设置多个公 ...
- Windows Azure Virtual Machine (28) 使用Azure实例级别IP,Instance-Level Public IP Address (PIP)
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 熟悉Azure平台的读者都知道,我们在使用Azure Virtual ...