文档详情

基于TCP与UDP的socket编程.docx

发布:2019-07-28约6.43千字共11页下载文档
文本预览下载声明
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.1 TCP部分 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.2 UDP部分 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.1 TCP部分 1.画好实现代码的流程图: S Server (running on hostid) Create socket port = x, for incoming request: welcomeSocket = ServerSocket() Wait for incoming connection request connectSocket = welcomeSocket.accept() Read request from connectionSocket Write reply to connectionSocket Close connectionSocket Client Create socket connectied to hosted,port = x clientSocket = Socket() Send request using clientSocket Read reply from clientSocket Close clientSocket TCP connection setup 2.编写TCPServer.java import java.io.*; import .*; class TCPServer { public static void main(String argv[]) throws Exception { String clientSentence; String sentenceLength; ServerSocket welcomeSocket = new ServerSocket(6789); while(true)
显示全部
相似文档