预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1课程设计名称 网络编程实验 2课程设计目的 1.通过基于TCP的Socket程序的编写、调试,掌握以下知识点: 1)Socket的编程方法; 2)基于TCP协议的网络应用的传输特点。 2.通过基于UDP的Socket程序的编写、调试,掌握以下知识点: 1)Socket的编程方法; 2)基于UDP协议的网络应用的传输特点。 3实验环境 Windows,JDK1.8,文本编辑器 4实验内容(算法、程序、步骤和方法) 4.1实验背景 Socket,通常也称作“套接字”,是TCP/IP网络的编程的接口(API),用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式Socket是为面向连接的应用服务提供的一种接口,数据报式Socket是为无连接的服务提供的一种接口,本实验中,通过java语言编写的基于TCP/UDP的客户/服务器程序,让学生了解面向连接的网络应用程序的工作原理及其Socket程序设计的方法。 4.2实验准备 4.2.1TCP部分 1.实验要求利用JAVA语言编写基于TCP的网络应用程序,需要了解下面相关知识: 1)TCP/UDP基于字节流传输的基本原理; 2)Socket的相关知识; 3)Java编程基础,熟悉Java下的Socket类与ServerSocket类的方法。 2.基于TCP的Socket编程,需要完成客户端和服务器两部分的程序设计。在代码开发之前,需要对网络层应用的协议进行详细设计,本实验的应用层协议设计如下: (1)协议的格式:ACSII码字符,回车作为消息的结束。 (2)协议的工作原理 (2-1)客户端:从标准键盘中读入一行字符,通过Socket发送到服务器;收到服务器反馈的信息,将信息显示在标准输出屏幕上;关闭连接。 (2-2)服务器端:从Socket中读出客户端发送的字符串信息;计算字符串的长度;将计算的结果通过Socket发送给客户端。 4.2.2UDP部分 1.实验要求利用JAVA语言编写基于UDP的字符串逆序转换的网络应用程序,需要了解下面相关知识: 1)UDP基于字节流传输的基本原理; 2)Socket的相关知识; 3)Java编程基础,Java下的DatagramSocket类的方法。 2.基于UDP的Socket编程,需要完成客户端和服务器两部分的程序设计。在代码开发之前,需要对网络层应用的协议进行详细设计,本实验的应用层协议设计如下: (1)协议的格式:ACSII码字符,回车作为消息的结束。 (2)协议的工作原理 (2-1)客户端:从标准键盘中读入一行字符,通过Socket发送到服务器;收到服务器反馈的信息,将信息显示在标准输出屏幕上;关闭连接。 (2-2)服务器端:从Socket中读出客户端发送的字符串信息;进行逆序转换;将转换的结果通过Socket发送给客户端。 4.3实验步骤 4.3.1TCP部分 1.画好实现代码的流程图: Server (runningonhostid) Createsocketport=x, forincomingrequest: welcomeSocket= ServerSocket() Waitforincomingconnectionrequest connectSocket=welcomeSocket.accept() ReadrequestfromconnectionSocket WritereplytoconnectionSocket CloseconnectionSocket Client Createsocketconnectiedtohosted,port=xclientSocket=Socket() SendrequestusingclientSocket ReadreplyfromclientSocket CloseclientSocket TCP connectionsetup 2.编写TCPServer.java importjava.io.*; importjava.net.*; classTCPServer{ publicstaticvoidmain(Stringargv[])throwsException{ StringclientSentence; StringsentenceLength; ServerSocketwelcomeSocket=newServerSocket(6789); while(true){ SocketconnectionSocket=welcomeSocket.accept(); BufferedReade