《2022年2022年计算机网络试验 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机网络试验 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、天津理工大学实验报告学院(系)名称:计算机与通信工程学院姓名刘新伟学号20081972 专业计算机科学与技术班级2008 级 4 班实验项目试验二:基于TCP/UDP 的 Socket 编程课程名称计算机网络原理课程代码0660086 实验时间2010 年 12 月14 日实验地点7-219 批改意见成绩教师签字:实验目的:熟悉和掌握socket 编程的基本理论和方法。掌握基于TCP 和 UDP 的工作原理以及Socket 编程的一般方法,能够编写简单的网络应用程序。实验要求:请在以下题目中选择一个,按照要求完成实验,并完成实验报告。实验不分组。编程可以使用任何高级语言,建议使用java 或
2、C+。也可以自拟题目。试验过程:实验 2.1:基于 TCP and UDP 的 socket编程1、实验内容:a)利用 Java 或 C+语言,分别基于TCP 和 UDP 编写一个简单的Client/Server网络应用程序。要求实现客户向服务器传输任意一个字符串,服务器将收到的字符串变换成大写后传回客户。b)修改上述程序,实现服务器根据客户请求,将服务器端指定的文件可靠地传输给客户。如果服务器没有指定的文件,服务器将给客户返回一个信息,通知客户其请求文件不存在。c)有条件的同学可以进一步改进b)的程序,使之更实用。比如可以请求服务器先传输目录,然后客户根据目录请求传输文件等。2、实验方式:每
3、位同学上机编程实验,实验指导教师现场指导。程序可参考附录的程序 1、程序 2、程序 3 和程序 4(程序中有错误需完善)3、实验报告:在实验报告中要说明Socket 编程的客户端和服务器端主要步骤、利用Java 语言用到的主要类及其主要作用、TCP 和 UDP 编程的主要差异和特点、你所名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -实现的文件传输的程序代码、实验过程和实验结果。1.基于 TCP 的 socket 编程TCPClient 端的程序import java.io.*;import .*;public class TCPClient public static
4、 void main(String argv)throws Exception String sentence;String modifiedSentence;BufferedReader infromUser=new BufferedReader(new InputStreamReader(System.in);Socket clientSocket=new Socket(59.67.146.124,6789);DataOutputStream outToServer=new DataOutputStream(clientSocket.getOutputStream();BufferedRe
5、ader infromServer=new BufferedReader(new InputStreamReader(clientSocket.getInputStream();sentence=infromUser.readLine();outToServer.writeBytes(sentence+n);modifiedSentence=infromServer.readLine();System.out.println(FROM SERVER:+modifiedSentence);clientSocket.close();TCPSever 端程序import java.io.*;impo
6、rt .*;class TCPServer publicstaticvoid main(String argv)throws Exception String ClientSentence;String capitalizedSentence;ServerSocket welcomeSocket=new ServerSocket(6789);while(true)Socket connectionSocket=welcomeSocket.accept();名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -BufferedReader infromClient=new Bu
7、fferedReader(new InputStreamReader(connectionSocket.getInputStream();DataOutputStream outToClient=new DataOutputStream(connectionSocket.getOutputStream();ClientSentence=infromClient.readLine();capitalizedSentence=ClientSentence.toUpperCase()+n;outToClient.writeBytes(capitalizedSentence);编程中注意客户程序和服务
8、器程序端口号要相同。客户程序中的Socket clientSocket=new Socket(59.67.146.124,6789);使用计算机名和客户机ip 均可。运行效果:名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -2 基于 UDP 的 socket编程UDPServer import java.io.*;import .*;class UDPServer publicstaticvoid main(String args)throws Exception DatagramSocket serverSocket=new DatagramSocket(9876);
9、byte receiveData=newbyte1024;byte sendData =newbyte1024;while(true)DatagramPacket receivePacket=new DatagramPacket(receiveData,receiveData.length);serverSocket.receive(receivePacket);String sentence=new String(receivePacket.getData();InetAddress IPAddress=receivePacket.getAddress();int port=receiveP
10、acket.getPort();String capitalizedSentence=sentence.toUpperCase();sendData=capitalizedSentence.getBytes();DatagramPacket sendPacket=new DatagramPacket(sendData,sendData.length,IPAddress,port);serverSocket.send(sendPacket);UDPClient import java.io.*;import .*;class UDPClient publicstaticvoid main(Str
11、ing args)throws Exception BufferedReader inFromUser=new BufferedReader(new InputStreamReader(System.in);DatagramSocket clientSocket=new DatagramSocket();InetAddress IPAddress=InetAddress.getByName(user132);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -byte sendData=newbyte1024;byte receiveData=newbyte1024;Str
12、ing sentence=inFromUser.readLine();sendData=sentence.getBytes();DatagramPacket sendPacket=new DatagramPacket(sendData,sendData.length,IPAddress,9876);clientSocket.send(sendPacket);DatagramPacket receivePacket=new DatagramPacket(receiveData,receiveData.length);clientSocket.receive(receivePacket);String modifiedSentence=new String(receivePacket.getData();System.out.println(FROM SERVER:+modifiedSentence);clientSocket.close();客户端程序和服务器程序要注意端口号一致,客户机用计算机名获得IP 地址。运行效果:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -