1、 网络基础知识 2、 JAVA网络编程 网络与分布式集群系统的区别:每个节点都是一台计算机,而不是各种计算机内部的功能设备。 Ip:具有全球唯一性,相对于internet,IP为逻辑地址。 端口(port):一台PC中可以有65536个端口,进程通过端口交换数据。连线的时候需要输入IP也需要输入端口信息。 计算机通信实际上的主机之间的进程通信,进程的通信就需要在端口进行联系。 192.168.0.23:21 协议:为了进行网络中的数据交换(通信)而建立的规则、标准或约定。 不同层的协议是不同的。 网络层:寻址、路由(指如何到达地址的过程) 传输层:端口连接 TCP模型:应用层/传输层/网络层/网络接口 端口是一种抽象的软件结构,与协议相关:TCP23端口和UDT23端口为两个不同的概念。 端口应该用1024以上的端口,以下的端口都已经设定功能。 套接字(socket)的引入:
Ip+Port=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); 127.0.0.1为一个默认本机的地址。 练习: 1、 客户端向服务器发出一个字符串,服务器转换成大写传回客户端。 大写的函数:String.toUpperCase() 2、 服务器告诉客户端:“自开机以来你是第n 个用户”。 12.12 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为基础。 |
|