网络的概念:相互连接,独立自主
网络与分布式集群系统的区别:每个节点都是一台计算机,而不是各种计算机内部的功能设备。
Ip:具有全球唯一性,相对于internet,IP为逻辑地址,TCP/IP网络中的每台计算机都有唯一的地址--IP地址. 唯一标示一台主机
在Java中,有一个用来存储internet地址的类叫InetAddress.
例:获取本机的IP地址
import java.net.*;
public class getLocalHostTest
{ public static void main()
{ InetAddress myIP=null;
try {myIP=InetAddress.getLocalHost();}
catch{UnknowHostException e){}
System.out.println(myIP);
}
}
创建inetAddress类不用构造函数(不用new)
端口(port):一台PC中可以有65536个端口,进程通过端口交换数据。连线的时候需要输入IP也需要输入端口信息。每个端口都可以和一个进程绑定。
计算机通信实际上是主机之间的进程通信,进程的通信就需要在端口进行联系。
192.168.0.23:21
协议:为了进行网络中的数据交换(通信)而建立的规则、标准或约定。协议定义的是数据的传输方式。
不同层的协议是不同的。
网卡:每个网卡都有一个物理地址。
网络层:寻址、路由(指如何到达地址的过程)
传输层:端口连接
TCP模型:应用层/传输层/网络层/网络接口
TCP:传输控制协议 安全面向链接,可靠的协议,保证不错序,不丢包
UDP: 用户数据报协议,
无链接,不安全,传输时把数据分成一个个数据报,最大64K,路径不同,容易丢包。
端口是一种抽象的软件结构,与协议相关:TCP23端口和UDT23端口为两个不同的概念。
端口应该用1024以上的端口,以下的端口都已经设定功能。
80端口:网络端口
21端口:ftp协议
23端口:telnet 远程访问
13端口:获得系统日期
127.0.0.1为一个默认本机的地址。
Localhost本机
套接字(socket)的引入:
Ip+Port=Socket(这是个对象的概念。)
一个Socket 绑定一个进程。
Socket为传输层概念,而JSP是对应用层编程。例:
java.net.*;
(Server端定义顺序)
ServerSocket(intport)
Socket.accept();//阻塞方法,当客户端发出请求时恢复
如果客户端收到请求:
则Socket SI=ss.accept();
注意客户端和服务器的Socket为两个不同的socket。
Socket的两个方法:
getInputStream():客户端用
getOutputStream() 服务器端用
使用完毕后切记Socket.close(),两个Socket都关,而且不用关内部的流。
在client端,Socket s=new Socket(“127.0.0.1”,8000);
UDP编程:
DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。
DatagramPacket(信件):数据包,是UDP下进行传输数据的单位,数据存放在字节数组中。
UDP也需要现有Server端,然后再有Client端。
两端都是DatagramPacket(相当于电话的概念),需要NEW两个DatagramPacket。
InetAddress:网址
这种信息传输方式相当于传真,信息打包,在接受端准备纸。
模式:
发送端:Server:
DatagramPacket inDataPacket=new DatagramPacket ((msg,msg.length); InetAdress.getByName(ip),port);
接收端:
clientAddress=inDataPack.getAddress();//取得地址
clientPort=inDataPack.getPort();//取得端口号
datagramSocket.send; //Server
datagramSocket.accept; //Client
URL:在应用层的编程
注意比较:
http://Localhost:8080/directory //查找网络服务器的目录
file://directory //查找本地的文件系统
java的开发主要以http为基础。
反射:主要用于工具和框架的开发。
反射是对于类的再抽象;通过字符串来抽象类。
JAVA类的运行:classLoader:加载到虚拟机(vm)
Vm中只能存储对象(动态运行时的概念),.class文件加载到VM上就成为一个对象,同时初始静态成员及静态代码(只执行一次)。
Lang包下有一个类为Class:在反射中使用。此类中的每个对象为VM中的类对象,每个类都对应类类的一个对象(class.class)。
例:对于一个Object类,用getClass()得到其类的对象,获得类的对象就相当于获得类的信息,可以调用其下的所有方法,包括类的私有方法。
注意:在反射中没有简单数据类型,所有的编译时类型都是对象。
反射把编译时应该解决的问题留到了运行时。
UDP编程:
Server:
1.DatagramSocket(13);
2.byte[]
3. DatagramPacket(b,b.length)
4.receive(in)
5. InetAdderss(Client) Post(Client)
6. DatagramPacket(b,b.length,ip,post)
7. send(out) 8.close()
Client
1. byte[]
2 DatagramPacket(b,b.length,ip,post)
3 . send(out)
4 DatagramPacket(b,b.length)
5. receive(in)
6 getDataString //转换
7 .close()
URL:统一资源定位器,唯一标识网络里的地址:http, ftp, file
http://www.hao123.com.cn
http://127.0.0.1:13/index/Login.html
只能获得输入流: InputStream in = url.openStream();
可以获得输入流和输出流:
URLConnection uc = url.openConnection
uc.getInputStream() and uc.getOutputStream()
String s1 = “Hello”;
String s2 = “Hello”;
String s3 = new String“Hello”;
String s4 = new String“Hello”;
String s5 = s4;
s4 = s1;
s3 = “Hello”;
一共创建了3个对象 8块内存 回收了一块内存
8块内存:-S1,s2,s3,s4,s5,new,new,s1=”Hello”
3个对象:new ,new ,”Hello”
注:s5=s4 将s4的内存地址赋给了s5
- 大小: 42.9 KB
- 大小: 33.5 KB
分享到:
相关推荐
Java网络编程
《Java网络编程》,附带《Java网络编程实例》和阅读器,欢迎下载
对java网络编程的进一步讲解,提升对java网络编程的了解
java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf
java网络编程.pdf
Java网络编程(第3版) 《Java网络编程》第三版会为你介绍Java网络API的最新特性。本书讨论了JDK 1.4和1.5(现在已命名为J2SE 5)中所做的所有修改和增补。本书内容全面,涵盖了从网络基础知识到远程方法调用(RMI)...
Java网络编程(第4版)的电子版书籍,学习java通讯技术的同学建议看一下这本书
Java网络编程期末考试复习题库+答案 java网络编程考试题目,内含有Java网络编程期末复习题(I/O、多线程、网络编程、数据库操作),有答案
《Java网络编程(第4版)》全面介绍了如何使用Java开发网络程序。你将学习如何使用Java的网络类库既快速又轻松地完成常见的网络编程任务,如编写多线程服务器、加密通信、广播到本地网络,以及向服务器端程序提交数据...
Java网络编程
Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第01章 项目背景知识(共15页).ppt Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第02章 用HTML+CSS实现宠物分类展现静态网页版本(共44页)....
Java网络编程实验报告.pdf
JAVA 网络编程服务器端例程,一个测试socket通信的比较好的例程
Java网络编程精解(孙卫琴)电子教案;Java网络编程精解(孙卫琴)电子教案
Java网络编程实践课程设计报告.pdf
最近获得的《Java网络编程实例》一书的源代码,上次在CSDN看到一个相同的资源,结果一下载打开,机子就中毒了,强烈鄙视那种上传病毒的人!
《Java网络编程实例:Java网络编程实例》一书的光盘资源,包括各章的源代码实例,需要学习的朋友看看
java网络编程实例,详细深入介绍java网络编程技术
Java网络编程 详细介绍