网络通信程序设计课程设计班级: 12网络姓名:学号:评分标准序号内容分值得分1 程序源码30分2 封面和目录5分3 编程内容概述5分4 编程环境5分5 编程实验过程10分6 编程技术点30分7 总结展望5分8 文档的写作文笔与格式规范10分评分总分[2015-6-25]目录1、引言 .......................................................................................................................................1.1引言………………………………………………………………………………………………….1.2实验环境…………………………………………………………………………………………….2、网络编程基础实验......................................................................2.1编程目的.........................................................................................................................2.2要求和编程技术点........................................................................................................2.3程序关键代码................................................................................................................2.4运行结果........................................................................................................................3、面向socket编程 .........................................................................................................3.1.socket设计要求和编程技术点..................................................................................3.2.程序修改的功能...........................................................................................................3.3.程序代码:...................................................................................................................3.4.运行结果:...................................................................................................................4、基于UDP的网络编程 ...................................................................................................4.1.UDP设计要求和编程技术点........................................................................................4.2.程序修改的功能...........................................................................................................4.3.程序修改以及代码:...................................................................................................4.4.运行结果:...................................................................................................................5、基于协议的网络编程 ...................................................................................................5.1.网络协议设计要求与编程技术点...............................................................................5.2.程序修改的功能...........................................................................................................5.3. 程序代码……………………………………………………………………………5.4. 运行结果……………………………………………………………………………6、组播编程 .......................................................................................................................6.1.实验要求与编程技术点...............................................................................................6.2.程序修改的功能...........................................................................................................6.3.程序修改以及代码:...................................................................................................6.4.运行结果:...................................................................................................................7、心得体会 .......................................................................................................................1、引言1.1引言网络编程简单的理解就是两台计算机相互通讯数据,通过使用套接字来达到进程间通信目的编程就是网络编程。
网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。
中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,当然最后再做一些处理。
网络通讯程序设计这门课程采用Java语言进行程序编写,Java突出的优点是通过预定义的库可以实现很强的功能,而不需要程序员做很多的事情。
对于Java而言,这些Socket的Api存在与 这个包里面,因此只要导入这个包就可以准备网络编程了, Socket、UDP、组播、协议就是网络编程技术的一部分。
这门课程的课程设计就从socket、UDP、组播、协议几个方面分别进行编写一些简单的例子。
1.2编程环境一台PC,Windowxp系统,Netbeans6软件2、网络编程基础实验2.1编程目的①学会基于NetBeans6编写JAVA程序;②掌握基础的I/O流编程技术;③掌握基于Thread类编程的具体应用。
2.2要求和技术点要求:①建立一个独立的文件管理编程的JAVA工程;②能正确运行且能实现文件管理程序;③对文件管理程序的功能进行拓广,使用Thread类实现文件管理。
编程技术点:①基于NetBeans6编写JAVA程序;②I/O流编程技术;③Thread类编程的具体应用。
2.3程序关键代码1/ioTest.javaimport java.io.File;import java.io.IOException;/**** @author Administrator*/public class ioTest {/*** @param args the command line arguments*/public static void main(String[] args) {String s_FileName = "d:/test.txt";String s_DFileName = "d:/test1.txt";new ioTest().copy(s_FileName, s_DFileName);}public boolean mkdirectory(String dir){File file =new File(dir);//如果文件夹不存在则创建if (!file.exists() && !file .isDirectory()) {System.out.println("//不存在");file.mkdir();return true;} else {System.out.println("//目录已存在");return false;}}public void copy(String source, String target) {try {WeiInputStream wis = new WeiInputStream(source);WeiOutputStream wos = new WeiOutputStream(target);// 复制文件int b;while((b = wis.read()) != -1) {wos.write(b);}wis.close();wos.close();} catch (IOException e) {System.err.println(e);}}}2/newjframe.java源目录:private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser chooser = new JFileChooser();// chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);int ret = chooser.showOpenDialog(null);if (ret == JFileChooser.APPROVE_OPTION) {File dir = chooser.getSelectedFile();String s = dir.getPath();jTextField1.setText(s);} // dir is the selected directory}}目标目录private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {JFileChooser chooser = new JFileChooser();chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);int ret = chooser.showOpenDialog(null);if (ret == JFileChooser.APPROVE_OPTION) {File dir = chooser.getSelectedFile();String s = dir.getPath();jTextField2.setText(s);}}复制:private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String s1 = jTextField1.getText();String s2 = jTextField2.getText();if (s1.length() > 0 && s2.length() > 0) {new ioTest().copy(s1, s2);}}}3/weiinputstream.javaimport java.io.*;/*** @author Administrator*/public class WeiInputStream {private String fileName;private FileInputStream fileInputStream;private BufferedInputStream bufferedInputStream;public WeiInputStream(String fileName) {this.fileName = fileName;try {//定义输入流fileInputStream = new FileInputStream(fileName);bufferedInputStream = new BufferedInputStream(fileInputStream);} catch (IOException e) {System.err.println(e);}}public int read() throws IOException {return bufferedInputStream.read();}public void close() throws IOException {bufferedInputStream.close();}}4/weioutputstream.java/** To change this template, choose Tools | Templates* and open the template in the editor.*/import java.io.*;/*** @author Administrator*/public class WeiOutputStream {private String fileName;private FileOutputStream fileOutputStream;private BufferedOutputStream bufferedOutputStream;private DataOutputStream dataOutputStream;public WeiOutputStream(String fileName) {this.fileName = fileName;try {//定义输出流fileOutputStream = new FileOutputStream(fileName);bufferedOutputStream = new BufferedOutputStream(fileOutputStream);dataOutputStream = new DataOutputStream(bufferedOutputStream);} catch (IOException e) {System.err.println(e);}}public void write(int b) throws IOException {dataOutputStream.write(b);}public void close() throws IOException {dataOutputStream.close();}}2.4运行结果3、面向socket编程3.1.socket设计要求和编程技术点要求:①建立两个独立的面向SOCKET编程的JAVA工程,用于服务器和客户端系统;②建立SOCKET的JAVA类,并能正确运行且能实现SOCKET通信;③对JAVA类的功能进行拓广,使SOCKET用于某一具体的应用。