C#网络应用编程第二版期末考试复习题.docx
- 文档编号:17535607
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:13
- 大小:40.74KB
C#网络应用编程第二版期末考试复习题.docx
《C#网络应用编程第二版期末考试复习题.docx》由会员分享,可在线阅读,更多相关《C#网络应用编程第二版期末考试复习题.docx(13页珍藏版)》请在冰点文库上搜索。
C#网络应用编程第二版期末考试复习题
1、类Process. 是位于System.Diagnostics名称空间下
(1)进程:
正在执行的程序叫进程
(2)Process[]myprocess=process.Getprocesses();//获取当前系统中所有正在运行的进程。
Processmyprocess=newprocess();myprocess.start();//启动指定的进程。
Myproocess.kill();//关闭指定的进程。
(3)processmyprocess=newprocess();
Myprocess.startinfo.filename=”文件名”;//进程打开一个文件
Myprocess.startinfo.arguments=”参数名”;//进程打开一个参数
2、Thread类位于System.Threading名称空间下
(1)线程:
一个进程包含若干独立的执行流,称之为线程
(2)threadt1=newthread(方法名);//创建线程
t1.start();或者t1.start(“方法名”)//启动线程
t1.abort();//终止线程
t1.sleep(100);//暂停线程
t1.join();//合并线程
(3)highestabovenormalnormalbelownormallowest//线程五大优先级
Threadt1=newthread(“方法名”);
t1.priority=threadpriority.abovenormal;//线程优先级调用
3、ip地址转换与域名解析(命名空间下)
(1)ipaddressip=ipaddress.parse(“10.128.37.12”);//parse方法将ip地址字符串转换为ipaddress实例
IPAddress类常用属性
Any提供一个IPv4地址,指示服务器应侦听所有网络接口上的客户端活动。
(等效于0.0.0.0)
Broadcast提供IPv4广播地址(等效于255.255.255.255)
Loopback表示IPv4回送地址(等效于127.0.0.1)
None表示Socket不应侦听客户端活动(不使用任何网络接口)。
IPv6Any提供可用的IPv6地址
IPv6Loopback表示IPv6回送地址
IPv6None提供不使用任何网络接口。
(2)ipaddressip=ipaddress.parse(“10.128.37.12”);
ipendpointiep=newipendpoint(ip,65000);
Listbox1.items.add(“ip地址:
”+iep.address+”ip端口号:
”+iep.port);
(3)iphostentry常用属性:
41页
AddressList属性:
获取或设置与主机关联的IP地址列表,是一个IPAddress类型的数组,包含了指定主机的所有IP地址;
HostName属性:
包含了服务器的主机名。
Aliases属性包含了与主机关联的别名列表。
在Dns类中,有一个专门获取IPHostEntry对象的方法。
例如:
IPAddress[]ips=Dns.GetHostEntry(“").AddressList;
Ips=dns.gethostentry(dns.gethostname()).addresslist;
(4)DNS(DomainNameSystem,域名系统)常用方法有
GetHostAddresses方法(获取指定主机的IP地址,返回一个IPAddress类型的数组)
例如:
IPAddress[]ips=Dns.GetHostAddresses("");
GetHostEntry方法(在DNS服务器中查询与某个主机名或IP地址关联的IP地址)
例如:
IPHostEntryhost=Dns.GetHostEntry("");//参数为空,返回本地主机的IPv4地址和主机名。
listBox1.Items.AddRange(host.AddressList);//本机所有IPv4地址
listBox1.Items.Add(host.HostName);//本机主机名
GetHostName方法(获取本机主机名)
例如:
stringhostname=Dns.GetHostName();
4、网卡信息检测与网络流量检测(System.Net.NetworkInformation命名空间)
5、编码与解码(System.Text名称空间下)
(1)编码:
是指将一组字符转换为一个字节序列的过程。
解码:
将一个编码字节序列转换为一组字符的过程。
(2)为什么需要编码和解码
网络传递的数据必须是字节序列。
6、套接字
(1)概念:
一个连接由它的两个端点标识,这样的端点称为套接字
(2)套接字之间的连接过程:
服务器监听;客户端请求;连接确认
(3)套接字编程步骤:
建立连接;发送、接收信息;关闭连接
7、文件流(System.io名称空间)
概念:
能对文件系统上的文件进行读取、写入、打开和关闭操作。
(1)创建FileStream实例
常用的构造函数具有三个参数,例如:
FileStream(stringpath,FileModemode,FileAccessaccess)
FileMode值用于指定当文件不存在时是否创建该文件;;FileAccess值是枚举的一个成员,它控制对文件的访问权限read,write
(2)读文件
在获取FileStream实例之后,可利用FileStream对象的Read方法读取文件中的数据。
该方法用于从流中读取字节块并将该数据写入给定字节数组中。
其语法形式为:
publicoverrideintRead(byte[]array,intoffset,intcount)
array:
存储从文件流中读取的数据。
offset:
array字节数组中开始写入数据的下标,一般为0。
size:
要从文件流中读出字节的大小
(3)写文件
publicoverridevoidWrite(
byte[]buffer,//包含要写入流的数据
intoffset,//buffer中开始写入数据的位置
intsize)//要写入流的字节数
8、内存流:
(System.io名称空间)
概念:
保存在内存中的数据流,以内存作为支持存储区,没有后备存储,可用做临时缓冲区
9、网络流(System.Net.Sockets名称空间)
概念:
用于通过网络套接字发送和接收数据
10、TCP是TransmissionControlProtocol(传输控制协议)的简称,是TCP/IP体系中面向连接的运输层协议,在网络中提供全双工的和可靠的服务。
TCP最主要的特点:
(1)是面向连接的传输层协议;
(2)每个TCP连接只能有两个端点,而且只能一对一通信,不能一点对多点直接通信。
(3)通过TCP连接传送的数据,能保证数据无差错、不丢失、不重复地准确到达接收方,并且保证各数据到达的顺序与数据发出的顺序相同。
(4)数据以字节流的方式传输。
(5)传输的数据无消息边界。
使用对套接字封装后的类,编写基于TCP的服务器端程序的一般步骤为:
(1)创建一个TcpListener对象,然后调用该对象的Start方法在指定的端口进行监听。
(2)在单独的线程中,循环调用AcceptTcpClient方法接受客户端的连接请求,并根据该方法的返回的结果得到与该客户端对应的TcpClient对象。
(3)每得到一个新的TcpClient对象,就创建一个与该客户对应的线程,在线程中与对应的客户进行通信。
(4)根据传送信息的情况确定是否关闭与客户的连接
使用对套接字封装后的类,编写基于TCP的客户端程序的一般步骤如下:
(1)利用TcpClient的构造函数创建一个TcpClient对象。
(2)使用Connect方法与服务器建立连接。
(3)利用TcpClient对象的GetStream方法得到网络流,然后利用该网络流与服务器进行数据传输。
(4)创建一个线程监听指定的端口,循环接收并处理服务器发送过来的信息。
(5)完成工作后,向服务器发送关闭信息,并关闭与服务器的连接。
TcpListener(System.Net.Socket命名空间)在同步工作方式下,TcpListener类常用的方法:
Start启动监听,构造函数为:
publicvoidStart([intbacklog])
参数backlog为请求队列的最大长度,即最多允许的的客户端请求连接个数;
Stop关闭TcpListener并停止监听请求,构造函数为:
publicvoidStop();
AcceptSocket在同步阻塞方式下获取并返回一个用来接收和发送数据的Socket对象,同时从传入的连接队列中移除该客户端的连接请求。
AcceptTcpClient
在同步阻塞方式下获取并返回一个封装了Socket的TcpClient对象,同时从传入的连接队列中移除该客户端的连接请求。
11、UDP(UserDatagramProtocol,用户数据报协议)
概念:
udp是一个简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输服务。
UDP与TCP相比主要有以下区别。
(1).UDP速度比TCP快(由于UDP不需要先与对方建立连接,也不需要传输确认,因此其数据传输速度比TCP快得多。
)
(2).UDP有消息边界(使用UDP不需要考虑消息边界问题,使用上比TCP简单)
(3).UDP可以一对多传输(利用UDP可以使用广播或组播的方式同时向子网上的所有客户发送信息。
这一点也比TCP方便)
(4).UDP可靠性不如TCP(与TCP不同,UDP并不提供数据传送的保证机制。
如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。
因此,通常人们把UDP称为不可靠的传输协议。
)
(5).UDP不像TCP那样能保证有序传输(UDP不能确保数据的发送和接收顺序。
对于突发性的数据报,有可能会乱序。
事实上,UDP的这种乱序性基本上很少出现,通常只会在网络非常拥挤的情况下才有可能发生。
)
UDP编程实现的方式(位于System.Net.Sockets命名空间)
UdpClientUdpClient=newUdpClient(“”,51888)
12、
FTP的主要功能如下:
1.提供文件的共享,包括程序文件和数据文件;
2.支持间接使用远程计算机;
3.使用户不因各类主机文件存储器系统的差异而受影响;
4.使用TCP提供可靠且有效的传输。
13、HTTP的请求与响应
(1)GET请求
(2)POST请求(3)HEAD请求
HTTP响应
客户端向服务器发送请求后,服务器会回送HTTP响应。
HTTP响应的一般格式为:
<status-line>
<headers>
<blankline>
[<response-body>]
注意:
对于HTTP响应来说,它与HTTP请求相比,唯一的区别是第1行中用状态信息代替了请求信息。
状态行(StatusLine)通过提供一个状态码来说明所请求的资源情况
14、什么是类?
一些具有共同特性的事物的抽象
15、什么是命名空间?
命名空间是对类的一种逻辑上的分组,即将类按照某种关系或联系划分到不同命名空间中。
16、可以用C#编写哪些类型的应用程序?
(1)控制台应用程序。
(2)Windows应用程序。
(3)水晶报表应用程序。
(4)ASP.NETWeb应用程序。
(5)ASP.NETWeb服务应用程序。
(6)ASP.NET水晶报表Web应用程序。
(7)智能设备应用程序。
17、Process类常用的属性和方法-----------------------获取进程实例-------------------GetProcessById方法(静态方法):
通过进程Id创建新的Process组件,并将其与本地计算机上的进程资源关联。
GetProcessById最多只有一个Process实例。
GetProcesses方法(静态方法):
获取本机所有进程GetProcessesByName方法(静态方法):
获取本机上特定名称的进程-----------------------获取及设置优先级---------------BasePriority属性:
获取进程优先级(只读)PriorityClass属性:
设置或更改进程优先级---------------------------进程ID及进程名-----------------------Id属性:
获取关联进程的唯一标识符ProcessName属性:
获取该进程的名称,不包括路径和扩展名---------------------------进程其他信息-------------------------MachineName属性:
获取关联进程正在其上运行的计算机名称MainModule属性:
获取关联进程的主模块Modules属性:
获取由关联进程加载的模块TotalProcessorTime属性:
获取进程的总的处理器时间StartTime属性:
获取关联进程的启动时间WorkingSet64属性:
为进程分配的物理内存量(字节数)
-----------------------进程启动-------------------------Start方法:
启动进程资源并将其与Process组件关联StartInfo属性:
获取或设置要传递给启动进程的文件名以及启动参数-----------------------进程终止-------------------------Kill方法:
强制终止进程CloseMainWindow方法:
关闭具有用户界面的进程Close方法:
释放与此组件关联的所有资源HasExited属性:
指示关联进程是否已终止WaitForExit方法:
设置等待关联进程退出的时间,并在该段时间结束前或该进程退出前,阻止当前线程执
18、线程Thread类提供的常用属性IsAlive属性:
获取一个值,该值指示当前线程的执行状态。
如果此线程已启动并且尚未正常终止,则为true;否则为falseIsBackground属性:
获取或设置一个值,该值指示某个线程是否为后台线程。
是后台线程或即将成为后台线程,则为true;否则为falsePriority属性:
获取或设置一个值,该值指示线程的调度优先级
求最大公约数
privateintMaxY(intfirstNumber,intsecondNumber)//求最大公约数的函数
{
intmax=Max(firstNumber,secondNumber);
intmin=Min(firstNumber,secondNumber);
intr=max%min;
if(r==0)
{
returnmin;
}
else
{
while(r!
=0)
{
max=min;
min=r;
r=max%min;
}
returnmin;
}}
1到100的素数
usingSystem;
classPrime
{
staticvoidMain()
{
intsum=1;
Console.Write(2+"");
for(intm=3;m<=100;m+=2)
{
boola=true;
if(m%2==0)
{
a=false;
}
else
{
for(inti=3;i { if(m%i==0) { a=false; break; } } } if(a==true) { sum++; Console.Write(m.ToString()+""); } } Console.WriteLine(); Console.WriteLine("total: "+sum); } } 9*9乘法表 inti,j,s;///定义I,J,S for(i=1;i<=9;i++)///外循环,从1循环到9 { for(j=1;j<=i;j++)///内循环,从1到i { s=i*j;///第一遍的: S=1*1,第二遍s=2*1,第三遍s=3*1 Console.Write("{0}*{1}={2}\t",i,j,s);///输入I*J=S,第一遍1*1=1,第二遍2*1=2 } Console.WriteLine();///输入换行符 } Console.Read(); 判定五个数是不是大写字母 usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespaceinputCapitalLetter { classProgram { staticvoidMain() { boolok=false; while(ok==false) { Console.Write("请输入5个大写字母: "); stringstr=Console.ReadLine(); if(str.Length! =5) { Console.WriteLine("你输入的字符个数不是5个,请重新输入。 "); } else { ok=true; for(inti=0;i<5;i++) { charc=str[i]; if(c<'A'||c>'Z') { Console.WriteLine("第{0}个字符“{1}”不是大写字母,请重新输入。 ",i+1,c); ok=false; break; } if(i==4) { Console.WriteLine("everyisbigletter"); } } } } } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 网络 应用 编程 第二 期末考试 复习题
![提示](https://static.bingdoc.com/images/bang_tan.gif)