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:网络编程的概述
计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网络编程 就 ...
随机推荐
- js 判断字符串是否包含另外一个字符串
示例代码: <script type="text/javascript"> var str = "测试一个字符串(ehtrzes)是否包含另外一个字符串&qu ...
- 体验WP 8.1 Update1开发不一定要更新VS2013 Update3
WP 8.1开发者预览版,估计大家也用得很High了,最近,MS推送了Update,主要的东西,不用说,就是最近被说得很火的小娜(Cortana),其实在推Update前几天,还有过一次小更新,当然我 ...
- Tcl Tk Introduction
Tcl Tk Introduction eryar@163.com 摘要Abstract:Tcl/Tck脚本可以很容易实现用户自定义的命令,方便的创建图形化的用户界面GUI,所以Tcl和Tk的应用领域 ...
- 用户代理字符串userAgent可实现的四个识别
定义 用户代理字符串:navigator.userAgent HTTP规范明确规定,浏览器应该发送简短的用户代理字符串,指明浏览器的名称和版本号.但现实中却没有这么简单. 发展历史 [1]1993年美 ...
- Floyd算法的理解
- poj1006生理周期(中国剩余定理)
/* 中国剩余定理可以描述为: 若某数x分别被d1..….dn除得的余数为r1.r2.….rn,则可表示为下式: x=R1r1+R2r2+…+Rnrn+RD 其中R1是d2.d3.….dn的公倍数,而 ...
- SharePoint Server 2013开发之旅(四):配置工作流开发和测试环境
工作流这个功能,在SharePoint Server 2013中做了很大的改动.我们可以从微软官方的文档中了解一下大概的情况 http://technet.microsoft.com/zh-cn/li ...
- SWFUpload简介及中文参考手册(share)
SWFUpload SWFUpload 版本 2 概览 (Overview) 入门( Getting Started) js对象 (SWFUpload JavaScript Object) 构造器(C ...
- JS网页顶部弹出可关闭广告图层
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Eclipse快捷键大全(转载)
一.实用类快捷键 1 常用熟悉的快捷键 CTRL+C(复制).CTRL+X(剪切).CTRL+Z(撤销).CTRL+F(查找).CTRL+H(搜索文件或字符串).CTRL+Y(重做).CTRL+/(双 ...