您好,欢迎访问三七文档
第一章--------网络基础知识1.1进程是指运行中的程序,进程的任务就是执行程序中的代码1.2网络中每台机器称为节点,网络协议(Protocol)是计算机能够通信的软件基础。协议是程序间通信的规约,定义了通信语言的语法、语义和时序。1.3OSI的概念--开放系统互连参考模型,是由ISO(国际标准化组织)定义的。OSI模型的目的1规范不同系统的互联标准2提供不同厂商间的接口标准.OSI把网络按照层次分为七层,由下到上分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层OSI参考模型——层功能1.4TCP/IP协议族是一个四层协议系统-应用层传输层Internet层网络接口层TCP/IP协议族是分布在四层结构的各层上的协议的集合。TCP/IP参考模型——与OSI的映射--应用表示会话层对应应用层;传输层对应传输层;网络层对应Internet层;数据链路物理层对应网络接口层。1.5IP协议是网络层协议,负责管理数据报的点到点传输。IP协议是不可靠、无连接的数据报传送协议IPv4为互联网上每台主机分配一个32位二进制整数地址(网络层地址),该地址被称为Internet地址或IP地址IP地址分类-------私有地址公共地址常用的传输层协议包括:TCP/UDP协议TCP协议提供一种面向连接的、可靠的、面向数据流的数据传输服务。它将源主机发出的字节流无差错的发送给互联网上的目标主机。UDP协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合TCP和UDP都用端口来标识进程,允许存在取值相同的TCP端口与UDP端口1.6客户机/服务器-模型--该模型将软件分为两类:客户机程序和服务器程序TCP客户/服务器程序流程如下UDP客户/服务器程序流程如下:应用层协议;HTTP----超文本传输协议,提供浏览网页服务Telnet-----远程登陆协议,提供远程管理服务FTP-----文件传输协议,提供互联网文件资源共享服务SMTP-----简单邮件传输协议,提供互联网电子邮件服务POP3-----邮局协议3,提供互联网电子邮件服务TFTP-----简单文件传输协议,提供简单的文件传输服务第二章--------Java及其输入输出机制2.1Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。通用性、高效性、平台移植性和安全性。Java是纯面向对象语言,程序设计的单元是类,程序运行的单元为对象C++是混合型语言,既可以是面向对象的,也可以是面向过程的其它语法区别定义常量:constfloatPI=3.14finalstaticfloatPI=3.14;Java去除了C++指针、析构函数等特性Java对象都是在堆上的,C++有栈对象也有堆对象Java中boolean类型和整型是不能进行类型转换的if(a=0){…..}else{…..}Java中只支持单继承,C++支持多继承classAextendsB{}Java抽象方法使用abstract,C++使用virtualJava对于完全抽象的类使用interface(接口)表示2.2Java的输入输出机制Java的输入输出操作采用流的机制,数据流是指所有的数据通信通道2.2.1流的概述大部分网络编程实质上处理输入和输出——将字节从一个系统传输到另一系统中网络上读写信息v.s.读写文件-------在逻辑上(从Java的角度)没什么区别——Java的I/O机制建立在流的基础上。不同的流用于读写特定资源,但它们都有基本的方法用于读写操作Java中,一个可以读取字节序列的对象称为输入流,一个可以向其中写入字节序列的对象称之为输出流。流是同步的,即:程序向流进行读写时,必须等待数据准备完毕后方法才会结束返回Java中流的分类---原始流过滤器流2.2.2输出流Java基础的输出流类为:-----publicabstractclassOutputStream基本方法包括(所有方法都抛出IOException):publicabstractvoidwrite(intb)publicvoidwrite(byte[]data)publicvoidwrite(byte[]data,intoffset,intlength)publicvoidflush()publicvoidclose()OutputStream子类实现这些方法将数据写到特定媒体FileOutputStreamTelnetOutputStreamByteArrayOutputStream2.2.3输入流Java基础的输入流类为:------publicabstractclassInputStream基本方法包括(所有方法都抛出IOException):publicabstractintread()publicvoidread(byte[]data)publicvoidread(byte[]data,intoffset,intlength)publicintavailable()publicvoidskip(longn)publicvoidclose()InputStream子类实现这些方法将数据写到特定媒体中FileInputStream、TelnetInputStream、ByteArrayInputStream。FileI/O文件对象的建立;Filefp=newFile(“tempfile.txt”);对文件操作要定义文件流;FileInputStream类用来打开一个输入文件;FileOutputStream类用来打开一个输出文件;文件流的建立FileInputStreamin=newFileInputStream(fp);FileOutputStreamout=newFileOutputStream(fp);输入流的参数是用于输入的文件名;输出流的参数是用于输出的文件名importjava.io.*;classfilestream{publicstaticvoidmain(Stringargs[]){try{FileinFile=newFile(”file1.txt);FileoutFile=newFile(”file2.txt);FileInputStreamfis=newFileInputStream(inFile);FileOutputStreamfos=newFileOutputStream(outFile);intc;while((c=fis.read())!=-1)fos.write(c);fis.close();fos.close();}catch(FileNotFoundExceptione){System.out.println(FileStreamsTest:+e);}catch(IOExceptione){System.err.println(FileStreamsTest:+e);}}}2.2.3输入流标记和重置(Marking&Resetting):用于在输入流中回退读取已经读过的数据publicvoidmark(intreadAheadLimit)publicvoidreset()publicbooleanmarkSupported()2.2.4过滤器流Java提供过滤器(filter)类将这些字节转化为其它格式数据过滤器包括两种:过滤器流和读写器(readers&writers),过滤器流依旧操作原始字节流,而读写器则操作文本。过滤器流置于原始流或其它过滤器流上,读写器则置于原始流、过滤器流和其它读写器之上,过滤器流不能置于读写器上过滤器输出流与OutputStream拥有相同的write、close和flush方法过滤器输入流与InputStream拥有相同的read、close和available方法过滤器流的链接:通过构造函数进行链接DataOutputStreamdout=newDataOutputStream(newBufferedOutputStream(newFileOutputStream(“data.txt”)));缓冲流BufferedOutputStream将写出的数据存储在缓冲区中,直到缓冲区满或者流被刷新;之后一次性将这些数据将数据写到底层输出流BufferedInputStream读取数据时会先在缓冲区中获取数据,只有在缓冲区中数据用完时才从底层输入流读取数据publicBufferedInputStream(InputStreamin);publicBufferedInputStream(InputStreamin,intbuffersize);publicBufferedOutputStream(OutputStreamout);publicBufferedOutputStream(OutputStreamin,intbuffersize);打印流;用于输出的流,System.out就PrintStream的一个实例构造函数:publicPrintStream(OutputStreamout)publicPrintStream(OutputStreamout,booleanautoFlush)PrintStream定义了9个重载的print和10个重载的;println方法,这些方法将不同基类型的参数先转换为字符串再写入底层输出流PrintStream的println方法应注意三个问题:println输出时平台相关的,有的是换行,有的是回车,有的是换行/回车对println按其运行平台制定默认的编码格式PrintStream会“吃”掉所有的异常数据流DataOutputStream和DataInputStream类提供将Java基本类型和字符串写成二进制格式及从二进制格式读出为Java基本类型和字符串writeBoolean、writeByte、writeShort……readBoolean、readByte、readShort……2.2.5读写器java.io.Reader用于读取字符java.io.Writer用于写字符Reader和Writer默认使用Unicode字符Reader子类包括:InputStreamReader;FileReader;CharArrayReader;Writer子类包括:OutputStreamWriter;FileWriter;CharArrayWriter;Writer常用方法:protectedWriter()protectedWriter(Objcetlock)publicabstractvoidwrite(char[]text,intoffset,intlength)publicvoidwrite(intc)publicvoidwrite(char[]text)publicvoidwrite(Strings)publicvoidwriter(Strings,intoffset,intlength)publicabstractvoidflush()publicabstractvoidclose()Writer子类,从Java程序中接收字符,根据指定的编码格式将字符转换为字节,并将其写入到一个输出流中publicOutputStreamWriter(OutputStreamout,Stringencoding);publicOutputStreamWriter(OutputStreamout);Reader常用方法:protectedReader()protectedReader(Objcetlock)publicabstractvoidread(char[]text,intoffset,intlength)publicvoidread(intc)publicvoidread(char[]text)publicvoidskip(longn
本文标题:网络编程技术试题
链接地址:https://www.777doc.com/doc-1780207 .html