基于UDP的网络日期计算服务系统.doc
《基于UDP的网络日期计算服务系统.doc》由会员分享,可在线阅读,更多相关《基于UDP的网络日期计算服务系统.doc(15页珍藏版)》请在沃文网上搜索。
1、目 录一、 引言3二、 基于TCP的程序设计3三、 基于UDP的程序设计四、 基于UDP的网络日期计算服务系统9五、 心得体会11一、引言 本学期我们学习了计算机网络自顶向下方法这门课程,在这门课程中,我们将因特网分成应用层,运输层,网络层,链路层,物理层这五个层次进行一一学习。其中运输层位于应用层和网络层之间,是分层的网络体系结构的重要部分。该层为运行在不同主机上的应用进程提供直接的通信服务起着至关重要的作用。运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信功能。网络应用程序可以使用多种运输层协议。例如:因特网有两种协议,即TCP和UDP,这两种协议都能为其调用的应用程序提供一组不同
2、的运输层服务。计算机网络日期计算系统是基于UDP协议的,二、基于TCP的程序设计1.基本原理:TCP是面向连接的可靠的传输层协议。它支持在并不可靠的网络上实现面向链接的可靠的数据传输。1.1 特点:(1)三次握手:建立可靠连接。(2)端口号:多路复用。(3)完整性校验:差错检测。(4)确认机制:应答接受。(5)序列号:丢失检测,乱序重排。(6)窗口机制:流量控制,拥塞控制。2.程序调试遇到的问题及解决2.1错误调试:由于服务器端可以不带选项进行启动,所以对服务器端的错误调试主要是带错误选项的调试;而客户端的错误调试包括不带选项启动、带不正确的端口号或者主机名启动,以及服务器为启动时启动客户端。
3、 (1)服务器端选项错误: 客户端不带选项:客户端启动时必须带选项(服务器端IP地址或者主机名、端口号),如果不带选项启动则会出错并终止程序。 服务器未启动时,启动客户端:如果未启动服务器时就启动客户端,将不能正确连接到服务器端。 客户端端口号或主机名不正确:如果服务器端已经启动(服务器端IP地址为动态分配IP地址,端口号为“”),但是客户端启动时端口号、服务器IP地址或主机名有一个不正确将不能正确连接到服务器端。 (2) 带正确选项的测试: 以默认主机号名和端口号启动服务器:假设服务器端IP地址为“192.168.1.101”,端口号为“2345”。如果客户端有到服务器端的连接,则在客户端会
4、显示连接信息,信息中包括客户端的IP地址。由于这里是在同一台主机上,则这里将显示相应的客户端IP地址,但前提是服务器端不是以“192.168.1.101”为地址启动,而是相应的服务器端所在主机的IP地址或者主机名为地址来启动。启动服务器端后,以正确的服务器端IP地址和端口号启动客户端,这时将在客户端显示连接信息,并显示来自服务器端的相应=A。而服务器端的连接信息则显示IP地址,端口号及即等于 A。 带选项启动服务器:服务器端也可以以指定选项的方式启动, 2.2程序:Server:package niuchunlu;import java.io.BufferedReader;import jav
5、a.io.DataOutputStream;import java.io.InputStreamReader;import .ServerSocket;import .Socket;public class TCPServer public static void main(String argv) throws ExceptionString clientSentence;String capitalizedSentence;ServerSocket welcomeSocket = new ServerSocket(2345);System.out.println(服务器正常启动);whil
6、e(true) Socket connectionSocket = welcomeSocket.accept();BufferedReader inFromClient =new BufferedReader(newInputStreamReader(connectionSocket.getInputStream();DataOutputStream outToClient =new DataOutputStream(connectionSocket.getOutputStream();clientSentence = inFromClient.readLine();capitalizedSe
7、ntence = clientSentence.toUpperCase() + n;outToClient.writeBytes(capitalizedSentence);Client: package niuchunlu;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.InputStreamReader;import .Socket;public class TCPClient public static void main(String argv) throws Exception S
8、tring sentence; String modifiedSentence; BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in); Socket clientSocket = new Socket(127.0.0.1, 2345); DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream(); BufferedReader inFromServer = new BufferedR
9、eader(new InputStreamReader(clientSocket.getInputStream(); sentence = inFromUser.readLine(); outToServer.writeBytes(sentence + n); modifiedSentence = inFromServer.readLine(); System.out.println(FROM SERVER: + modifiedSentence); clientSocket.close(); 三、基于UDP的程序设计1.基本原理:UDP是无连接的传输协议,主要用于支持在较可靠的链路上的数据传
10、输,或用于对延迟较敏感的应用。实现简单,资源占用少,实时性强,适用于可靠性高的网络和延迟敏感的应用。2.特点:(1)记录端口信息。(2)非连接的传送特性。(3)可以降低对计算机资源的需求。(4)不必进行数据完整性的检测(不可靠传输)。(5)适用于多点传送或广播传送等一对多的传送方式。2.程序调试遇到的问题及解决2.1错误调试:2.2程序:Server:package socket;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import .InetAddres
11、s;import .ServerSocket;import .Socket;public class Server public static void main(String args) ServerSocket server=null;DataInputStream din=null;DataOutputStream dout=null;try server=new ServerSocket(2000);/ 定义服务器端的接受对象,并指定接收端口/* * 端口(Port):使我们解析输入数据依赖的标记。 */System.out.println(服务器启动.);while(true)Soc
12、ket sc=server.accept();/获得来自客户端的IPInetAddress ip=sc.getInetAddress();/通过socket对象得到客户端IPSystem.out.println(收到来自IP:+ip+发送来的消息:);int port =sc.getPort();/通过socket对像得到客户端发送这条消息的端口System.out.println(客户端端口:+port);din=new DataInputStream(sc.getInputStream();String mes=din.readUTF();System.out.println(mes);/
13、 发送回执消息dout=new DataOutputStream(sc.getOutputStream();dout.writeUTF(服务器收到了); try if(din!=null)din.close(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); try if(dout!=null)dout.close(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); try if(sc!=nu
14、ll)sc.close(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();Client:package socket;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import .Socket;import .U
15、nknownHostException;import javax.swing.JOptionPane;public class Client public static void main(String args) Socket sc=null;String mes=JOptionPane.showInputDialog(输入发送消息);DataOutputStream dout=null;DataInputStream din=null;try /捕获异常情况sc=new Socket(169.254.74.168,2000);/ 指定发送消息的Socket对象,dout=new DataO
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 UDP 网络 日期 计算 服务 系统
