欢迎来到天天文库
浏览记录
ID:51802328
大小:285.32 KB
页数:15页
时间:2020-03-15
《基于TCP和UDP的socket编程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、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地址和端口,是一个通信链的句柄,
2、可以用来实现不同虚拟机或不同计算机之间的通信。常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式Socket是为面向连接的应用服务提供的一种接口,数据报式Socket是为无连接的服务提供的一种接口,本实验中,通过java语言编写的基于TCP/UDP的客户/服务器程序,让学生了解面向连接的网络应用程序的工作原理及其Socket程序设计的方法。4.2实验准备4.2.1TCP部分1.实验要求利用JAVA语言编写基于TCP的网络应用程序,需要了解下面相关知识:
3、1)TCP/UDP基于字节流传输的基本原理;2)Socket的相关知识;3)Java编程基础,熟悉Java下的Socket类与ServerSocket类的方法。2.基于TCP的Socket编程,需要完成客户端和服务器两部分的程序设计。在代码开发之前,需要对网络层应用的协议进行详细设计,本实验的应用层协议设计如下:(1)协议的格式:ACSII码字符,回车作为消息的结束。(2)协议的工作原理(2-1)客户端:从标准键盘中读入一行字符,通过Socket发送到服务器;收到服务器反馈的信息,将信息显示在标准输出屏幕上;关闭连接。(2-
4、2)服务器端:从Socket中读出客户端发送的字符串信息;计算字符串的长度;将计算的结果通过Socket发送给客户端。4.2.2UDP部分1.实验要求利用JAVA语言编写基于UDP的字符串逆序转换的网络应用程序,需要了解下面相关知识:1)UDP基于字节流传输的基本原理;2)Socket的相关知识;3)Java编程基础,Java下的DatagramSocket类的方法。2.基于UDP的Socket编程,需要完成客户端和服务器两部分的程序设计。在代码开发之前,需要对网络层应用的协议进行详细设计,本实验的应用层协议设计如下:(1)
5、协议的格式:ACSII码字符,回车作为消息的结束。(2)协议的工作原理(2-1)客户端:从标准键盘中读入一行字符,通过Socket发送到服务器;收到服务器反馈的信息,将信息显示在标准输出屏幕上;关闭连接。(2-2)服务器端:从Socket中读出客户端发送的字符串信息;进行逆序转换;将转换的结果通过Socket发送给客户端。4.3实验步骤4.3.1TCP部分1.画好实现代码的流程图:Server(runningonhostid)Createsocketport=x,forincomingrequest:welcomeSocke
6、t=ServerSocket()WaitforincomingconnectionrequestconnectSocket=welcomeSocket.accept()ReadrequestfromconnectionSocketWritereplytoconnectionSocketCloseconnectionSocketClientCreatesocketconnectiedtohosted,port=xclientSocket=Socket()SendrequestusingclientSocketReadreply
7、fromclientSocketCloseclientSocketTCPconnectionsetup2.编写TCPServer.javaimportjava.io.*;importjava.net.*;classTCPServer{publicstaticvoidmain(Stringargv[])throwsException{StringclientSentence;StringsentenceLength;ServerSocketwelcomeSocket=newServerSocket(6789);while(tr
8、ue){SocketconnectionSocket=welcomeSocket.accept();BufferedReaderinFromClient=newBufferedReader(newInputStreamReader(connectionSocket.getInputStre
此文档下载收益归作者所有