专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java网络编程重点(java实现网络编程)

temp10 2024-09-10 21:02:59 java教程 11 ℃ 0 评论

已保存

网络编程

Java网络编程重点(java实现网络编程)

基本概念:

1、计算机网络

计算机网络是相互连接的独立自主的计算机的集合,

最简单的网络形式由两台计算机组成。

2、网络通信

IP地址:

1)IP网络中每台主机都必须有一个惟一的IP地址;

2)IP地址是一个逻辑地址;

3)因特网上的IP地址具有全球唯一性;

4)32位,4个字节,常用点分十进制的格式表示,例如:192.168.0.16。

协议:

1)为进行网络中的数据交换(通信)而建立的规则、标准或约定;(=语义+语法+规则) ;

2)不同层具有各自不同的协议。

端口号:

端口使用一个16位的数字来表示,它的范围是0--65535,1024以下的端口号保留给预定义的服务。例如:http使用80端口。


3、OSI(Open System Interconnection)参考模型

物理层:二进制传输,确定如何在通信信道上传递比特流;

数据链路层:加强物理层的传输功能,建立一条无差错的传输线路;

网络层:在网络中数据到达目的地有很多线路,网络层就是负责找出最佳的传输线路;

传输层:传输层为源端计算机到目的端计算机提供可靠的数据传输服务,隔离网络的上下层协议,使得上层网络应用的协议与下层无关;

会话层:在两个相互通信的应用进程之间建立、组织和协调其相互之间的通信;

表示层:处理被传送数据的表示问题,也就是信息的语法和语义,如有必要将使用一种通用的格式在多种格式中进行转换;

应用层:为用户的应用程序提供网络通信服务;

OSI(Open System Interconnection)参考模型并不是物理实体上存在这七层,这只是功能的划分,是一个抽象的参考模型。进行网络通信时,每层提供本层对应的功能;

1)通信实体的对等层之间不允许直接通信,它们之间是虚拟通信,实际通信在最底层完成;

2)各层之间是严格单向依赖;

3)上层使用下层提供的服务 — Service user;

4)下层向上层提供服务 — Service provider。

5)对等层实体之间虚拟通信;

6)下层向上层提供服务,实际通信在最底层完成。


4、OSI各层所使用的协议

1)应用层:远程登录协议Telnet、文件传输协议FTP(网上下载一个软件或者资料的时候就会使用该协议)、 超文本传输协议HTTP(使用较多,通过IE浏览一个网页的时候就使用该协议)、域名服务DNS(使用较多,通过网络访问一个计算机一般不使用该主机的IP地址,而是通过该主机的域名访问)、简单邮件传输协议SMTP(通过Foxmail发送邮件)、邮局协议POP3等(通过Foxmail收邮件);

2)传输层:传输控制协议TCP、用户数据报协议UDP;

TCP:面向连接的可靠的传输协议;在利用TCP协议进行通信的时候,首先要经过三步握手建立起通信双方的连接,一旦连接建立后就可以通信了。TCP协议提供数据确认和重传的机制,保证数据一定能够到达数据接收端。像打电话。

UDP:是无连接的,不可靠的传输协议;采用UDP协议进行通信时,不需要建立连接,可以直接向一个IP地址发送数据,至于是不是能够收到不能保证,发送过程中数据有可能丢失、IP地址可能不存在、再者IP地址代表的主机没有运行等原因都可能导致不能接收到数据。

3)网络层:网际协议IP、Internet互联网控制报文协议ICMP、Internet组管理协议IGMP。


5、基于TCP的Socket编程步骤:

1)服务器程序编写:

①调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口上;

②调用accept(),监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字;

③调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收;

④最后关闭通信套接字。

2)客户端程序编写:

①调用Socket()创建一个流套接字,并连接到服务器端;

②调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收;

③最后关闭通信套接字。

基于UDP的Socket编程步骤:

1)接收端程序编写:

①调用DatagramSocket(int port)创建一个数据报套接字,并绑定到指定端口上;

②调用DatagramPacket(byte[] buf, int length),建立一个字节数组以接收UDP包 ;

③调用DatagramSocket类的receive(),接收UDP包;

④最后关闭数据报套接字。

2)发送端程序编写:

①调用DatagramSocket()创建一个数据报套接字;

②调用DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port),建立要发送的UDP包;

③调用DatagramSocket类的send(),发送UDP包;

④最后关闭数据报套接字。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表