资源描述
第12章 网络编程第12章 网络编程 【实验目标】 完成本章的内容以后,您将达到:u 掌握网络编程的基本概念u 编写UDP网络程序u 编写TCP网络程序本章实验给出了全面的操作步骤,请学生按照给出的步骤独立完成实验,以达到要求的实验目标。 第一阶段指导学习(40分钟)1. 编写两个UDP程序,编译并运行1) 建立文件名为“UDPSend.java”,输入以下程序代码。import .*;/* * 使用UDP实现数据发送 * 1.0版 2008年8月18日 * author xx */public class UDPSend/主函数public static void main(String args) throws ExceptionDatagramSocket ds = new DatagramSocket();/建立发送数据报套接字String StrHello = Hello world! ;/*将要传送的信息打包为数据报包: *包数据 *包长度 *目的地址 *目的端口号*/DatagramPacket dp = new DatagramPacket(StrHello.getBytes(),StrHello.length(),InetAddress.getByName(127.0.0.1),2000);ds.send(dp);/使用数据包套按字发送数据报包ds.close();2) 建立文件名为“UDPReceive.java”,输入以下程序代码。import .*;/* * 使用UDP实现数据接收 * 1.0版 2008年8月18日 * author xx */public class UDPReceivepublic static void main(String args) throws ExceptionDatagramSocket ds = new DatagramSocket(2000);/建立接收数据包套接字byte buf = new byte1024;DatagramPacket dp = new DatagramPacket(buf,1024);/实现接收的数据报包ds.receive(dp);/接收数据报包/从接收到的数据报包取出数据String StrRecv = new String(dp.getData(),0,dp.getLength() + from + dp.getAddress().getHostAddress() + : + dp.getPort();System.out.println(StrRecv);ds.close();/关闭接收数据报套接字2. 编写两个TCP程序,编译并运行1) 建立文件名为“TcpClient.java”,输入以下程序代码。import .*;import java.io.*;/* * TCP网络程序客户端 * 1.0版 2008年8月18日 * author xx */public class TcpClientpublic static void main(String args)tryif(args.length 2)/创建Socket对象,实现网络通信Socket S = new Socket(InetAddress.getByName(127.0.0.1),6000);/连接服务端InputStream InInfo = S.getInputStream();/网络数据接收流OutputStream OutInfo = S.getOutputStream();/网络数据发送流OutInfo.write(OK!.getBytes();/向网络发送信息byte buf = new byte1024;int Len = InInfo.read(buf);/接收从网络接收到的数据System.out.println(new String(buf,0,Len);/在控制台输出网络接收到的数据InInfo.close();/关闭输入流OutInfo.close();/关闭输出流S.close();/关闭网络连接catch(Exception e)e.printStackTrace();2) 建立文件名为“TcpServer.java”,输入以下程序代码。import .*;import java.io.*;/* * TCP网络程序服务器端 * 1.0版 2008年8月18日 * author xx */public class TcpServerpublic static void main(String args)tryServerSocket SS = new ServerSocket(6000);/创建服务器对象,端口号6000Socket S = SS.accept();/创建Socket对象,实现网络信息发送与接收InputStream InInfo = S.getInputStream();/获得网络输入流OutputStream OutInfo = S.getOutputStream();/创建网络输出流OutInfo.write(Welcome to IMTI!.getBytes();/如果建立了网络连接发送消息给请求端byte buf = new byte1024;int Len = InInfo.read(buf);/从请求端获取发送给服务器端的信息System.out.println(new String(buf,0,Len);/在控制台输入发送来信息。InInfo.close();/关闭网络输入流OutInfo.close();/关闭网络输出流S.close();/关闭Socket连接SS.close();/关闭ServerSocket连接catch(Exception e)e.printStackTrace();第二阶段练习(40分钟)习题一编写一个简单的UDP的聊天室窗体底部第三阶段作业(课后)作业一使用Swing及其事件实现一个带界面的TCP聊天程序(客户端/服务器端)
展开阅读全文