




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、选择题1、下列关于构造函数的描述正确的是( C )A、构造函数可以声明返回类型。(不可以申明返回类型) B、构造函数不可以用private修饰 (一般是用public,但也可以用private)C、构造函数必须与类名相同 D、构造函数不能带参数 (可以带数)2、接口是一种引用类型,在接口中可以声明( A ),但不可以声明公有的域或私有的成员变量。A、方法、属性、索引器和事件 B、方法、属性信息、属性 C、索引器和字段 D、事件和字段; 3、下列描述错误的是( D )A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口;(一个基类和实例化多个接口) 4、在C#中设计时,如何将一个可读写的公有属性Nmae修改为只读属性?( C )A、为Nmae添加修饰符 B、将Nmae的set块置空 C、将Nmae的set块删除 D、在Nmae的set块前加修饰符pravite 5、以下关于ref和out的描述不正确的是?( B )A、使用ref参数,传递到ref参数的参数必须最先初始化。 B、使用out参数,传递到out参数的参数必须最先初始化。(使用out表明该引用参数是用来输出的,调用时不需要对参数进行初始化) C、使用ref参数,必须将参数作为ref参数显式传递到方法。 D、使用out参数,必须将参数作为out参数显式传递到方法。 6、下列关于C#中索引器理解正确的是( C )A、索引器的参数必须是两个或两个以上(只要形参个数与类型不一样都可以) B、索引器的参数类型必须是整数型(C#并不将索引类型限制为整数) C、索引器没有名字(索引器声明类似于属性声明,主要区别是索引器是无名称的使用this关键字) D、以上皆非 7、在C#中设计类时,应如何保证在释放对象的所有引用之前,释放对象使用的文件、网络等资源?(A)A、为类添加析构函数,在析构函数中释放资源 B、为类重载new运算符 C、为IDisposable实现接口 D、为类添加delete运算符 8、要创建多文档应用程序,需要将窗体的( D )属性设为true。A、DrawGrid; B、ShowInTaskbar;C、Enabled; D、IsMdiContainer 9、.变量openFileDialog1 引用一个OpenFileDialog 对象.为检查用户在退出对话框时是否单击了“打开”按钮,应检查openFileDialog1.ShowDialog()的返回值是否等于( A )。A、DialogResult.OK B、DialogResult.Yes C、DialogResult.No D、DialogResult.Cancel 10、C#程序中,为使变量myForm 引用的窗体对象显示为对话框,必须: ( C )A、使用myForm.ShowDailog 方法显示对话框 (好像myForm.Show也行)B、 将myForm 对象的isDialog 属性设为true C、将myForm 对象的FormBorderStyle 枚举属性设置为FixedDialog D、将变量myForm 改为引用System.Windows.Dialog 类的对象 11、在C# Windows表单应用程序中,如何将一个对话框对象myDialog显示为模态对话框?(B)A、调用myDialog.Show(); B、调用myDialog.ShowDialog (); C、调用System.Forms.Dialog.Show(myDialog); D、调用System.Forms.Dialog.Show(myDialog); 12、变量nenuItem1引用一个菜单项对象,为隐藏该菜单项,应进行何种操作?( A )A、nenuItea1.Visible=false B、nenuIteal.Enabled=false C、nenuIteal.Checked=false D、nenuIteal.Test= 13、创建菜单后,为了实现菜单项的命令功能,应为菜单项添加( C )事件处理方法.A、DrawIten B、Popup C、Click D、Select 14、如果设treeView1=new TreeView(),则treeView1.Nodes.Add(根节点)返回的是一个 ( A )类型的值。A、TreeNode B、int C、string D、TreeView 15、变量menuItem1引用一个菜单项对象.为使该菜单项变为“灰色不可选”状态, 应对menuItem1的哪个属性进行操作?( A ) A、Enabled B、Checked C、Visible D、Text 16、 以下叙述正确的是:( C )A、接口中可以有虚方法。 B、一个类只能实现一个接口。 C、接口不能被实例化。 D、接口中可以包含已实现的方法。 17、从数据库读取记录,你不可能用到的方法是:( A)A、ExecuteNonQuery B、ExecuteScalar C、Fill D、ExecuteReader 18、在对SQL Server 数据库操作时应选用( A )A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 19、下列选项中,( C )是引用类型。A、enum类型 B、struct类型 C、string类型 D、int类型 20、C#的数据类型有( B )A、值类型和调用类型; B、值类型和引用类型; C、引用类型和关系类型; D、关系类型和调用类型; 21、C#程序中,可使用try.catch 机制来处理程序出现的( B )错误。A、语法 B、运行 C、逻辑 D、拼写 22、int myArray3=new int3new int35,6,2,new int56,9,7,8,3,new int23,2; myArray322的值是( D )。A、9 B、2 C、6 D、越界 23、.如果将窗体的FormBoderStyle设置为None,则( )。A、窗体没有边框并不能调整大小; B、窗体是透明的; C、窗体有边框但不能调整大小; D、窗体没有边框但能调整大小; 24、.如果要将窗体设置为透明的,则( )A、要将FormBoderStyle属性设置为None; B、要将Opacity属性设置为小于100%得值; C、要将locked 属性设置为True; D、要将 Enabled属性设置为True; 25、C#中,在方法MyFunc 内部的try.catch 语句中,如果在try 代码块中发生异常,并且在当前的所有catch 块中都没有找到合适的catch 块,则( C )A、.NET 运行时忽略该异常 B、.NET 运行时马上强制退出该程序 C、.NET 运行时继续在MyFunc 的调用堆栈中查找提供该异常处理的过程 D、 .NET 抛出一个新的”异常处理未找到”的异常 26、装箱、拆箱操作发生在: ( C )A、类与对象之间 B、对象与对象之间 C、引用类型与值类型之间 D、引用类型与引用类型之间 27、用户自定义异常类需要从以下哪个类继承:( A )A、Exception B、CustomException C、ApplicationException D、BaseException 28、在C#程序中,显示一个信息为”This is a test!”, 标题为”Hello”的消息框,正确的语句是( B )。A、MessageBox(“This is a test!”, “Hello”) ; B、MessageBox.Show(“This is a test!”, “Hello”) ; C、MessageBox(“Hello”,”This is a test!”) ; D、MessageBox.Show(“Hello”,”This is a test!”) ; 30、在使用FileStream 打开一个文件时,通过使用FileMode 枚举类型的( A )成员,来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。A、 Append B、 Create C、CreateNew D、Truncate 32、变量openFileDialog引用一个OpenFileDialog对象,为检查用户是否单击了“打开”按钮而退出该对话框,应检查框,应检查(D)是否等于OpenFileDialog.OK。A、OpenFileDialog.Site属性的值 B、OpenFileDialog.Result属性的值 C、OpenFileDialog.OpenFile()的返回值 D、OpenFileDialog1.ShowDialog()的返回值 33、变量openFileDialog引用一个openFileDialog对象. 为使该对话框可以同时打开多个文件,应在显示对话框前将( C )属性的值设为ture.A、 FileName B、FileNames C、Multiselect D、Multifiles 34、在C#中,将路径名”C:Documents”存入字符串变量path中的正确语句是( A )A、path = “C: Docments“; B、path = “C: /Document/”; C、path = “C:Document”; D、path = “C:/Document/”; 35、cmd 是一个SqlCommand 类型的对象,并已正确连接到数据库MyDB.为了在遍历完SqlDataReader 对象的所有数据行后立即自动释放cmd 使用的连接对象,应采用下列哪种方法调用ExecuteReader 方法。( D )A、SqlDataReader dr = cmd.ExecuteReader( ); B、 SqlDataReader dr = cmd.ExecuteReader(true); C、 SqlDataReader dr = cmd.ExecuteReader(0); D、SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 36、下列那个不可以在DataSet 对象ds 中添加一个名为Customers的DataTable 对象( A)A、DataTable dt_customers = new DataTable(); B、 DataTable dt_customers = new DataTable(Customers); ds.Tables.Add(dt_customers); C、ds.Tables.Add(Customers); D、ds.Tables.Add(new DataTable(Customers); 37、dt 为DataTable 类型的变量,引用名为Customers的DataTable 对象。该表中包含CustomerID ,CustomerName ,Address ,Telephone 等4 列。将数据列CustomerID设为该表的主键的正确语句有: ( D )A、dt.PrimaryKey = CustomerID; B、dt.PrimaryKey.Add(CustomerID); C、 dt.PrimaryKey = new objectCustomerID; D、dt.PrimaryKey = new DataColumndt.ColumnsCustomerID; 38、已知ds 为数据集对象。以下语句的作用是(A)。 ds.TablesProduct.Constraints.Add(new UniqueConstraint(UC_ProductName,new stringName,Class,true);A、为表Product添加一个由列Name,Class组合成的主键约束 B、为表Product添加一个由列Name,Class组合成的唯一性约束 C、为数据集ds 添加一个名为Product的数据表,并添加两个列,列名分别为Name和Class D、为数据集ds 添加一个名为Product的数据表,并添加一个名为UC_ProductName的数据列 39、在DataSet 中,若修改某一DataRow 对象的任何一列的值,该行的DataRowState 属性的值将变为(D )A、DataRowState.Added B、DataRowState.Deleted C、DataRowState.Detached D、DataRowState.Modified 40、SqlDataAdapter 对象的DeleteCommand 的属性值为null,将造成: (C )A、程序编译错误 B、SqlDataAdapter 在处理DataSet 中被删除的行时,这些行将被跳过不处理 C、SqlDataAdapter 在处理DataSet 中被删除的行时,将引发异常 D、SqlDataAdapter 在处理DataSet 中被删除的行时,将出现对话框询问用户如何处理该行 42、在类作用域中能够通过直接使用该类的( D)成员名进行访问。 A、私有 B、公用 C、保护 D、任何 43、在类的成员中,用于存储属性值的是( D)。 A、属性 B、方法 C、事件 D、成员变量 44、属于C#语言的关键字(A)。 A、abstract B、camelC、Salary D、 Employ 45、以下说法正确的是( B )A、构造函数名不必和类名相同 B、一个类可以声明多个构造函数 C、构造函数可以有返回值 D、编译器可以提供一个默认的带一个参数的构造函数 47、c#中获得当前时间并在控制台上只显示年月日的语句是( B ):A、Console.WriteLine(DateTime.Now.ToString(YYYY-MM-DD); B、Console.WriteLine(DateTime.Now.ToString(yyyy-mm-dd); C、 Console.WriteLine(DateTime.Now.ToString(); D、Console.WriteLine(DateTime.Now.ToString(yyyy-MM-dd); 48、“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述?( B )A、public B、protected C、internal D、protected internal 49、在ADO.NET 中,为访问DataTable 对象从数据源提取的数据行。可使用DataTable 对象的( A)属性。A、 Rows B、 Columns C、Constraints D、DataSet 50、下面描述错误的是( D ) A、窗体也是控件; B、窗体也是类; C、控件是从窗体继承来的; D、窗体的父类是控件类; 51、声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是( B ) A、void myCallBack(int x) ; B、int receive(int num) ; C、string receive(int x) ; D、不确定的; 52、以下哪个是可以变长的数组?( D )A、Array B、string C、stringN D、ArrayList ?53、 使用TCP套接字时,有可能产生阻塞的函数是( C )。A、socket B、listen C、accept D、bind4 使用TCP套接字时,发出连接请求的函数是( B )。 A、bind B、connect C、socket D、write54、( C )协议提供面向连接的、可靠的数据流服务。A、UDP B、IP C、TCP D、ICMP?55、TCP套接字函数中(B)不会产生阻塞。 A、bind B、read C、accept D、write57、下面选项中,( C )是构造函数特点A、构造函数可以有返回值 B、一个类中只能有一个构造函数C、构造函数名同类名 D、构造函数不能重载58、 己知在一个名为“dsOrder”的数据集中有一个名为“order”的表,在“order”表中有一行一列,下列( B )段C# 代码能够正确访问该表记录的第一行第一列的值。A、 disorder“order”.Rows00; B、disorder.Tables0.Rows00;C、disorder.Tables0.Columns00; D、disorder“order”.Columns00;69、在ADO . NET中,为了执行一个存储过程,需要把SqlCommand对象的CommandType属性设置为( A )。A.CommandType . StoredProcedure B.CommandType . TableDirectC.CommandType . Text D.CommandType . Sql60、在C#中,一个类( B )A、可以继承多个类 B、可以实现多个接口C、在一个程序中只能有一个子类 D、只能实现一个接口61、列表视图ListView的View属性的默认值为( A )A、大图标LargeIcon B、小图标SmallIcon C、详细资料Details D、列表List62、在WinForm窗体中,放置了一个PictureBox 控件PictureBox1,在设置PictureBox1控件的Image 属性后,当图片与控件的大小不一致时,可以通过如下代码( A )使PictureBox1控件的大小与图片大小保持一致。A.this.PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;B.this.PictureBox1.SizeMode = PictureBoxSizeMode.Normal;C.this.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;D.this.PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;63、在.NET中,文本框控件的( A )属性用来设置其是否是只读的。A.ReadOnly B.Locked C.Lock D.Style64、WinForms程序中,如果复选框控件的 Checked属性值设置为 True,表示( A )。A.该复选框被选中 B.该复选框不被选中C.不显示该复选框的文本信息 D.显示该复选框的文本信息65、( A )方法执行指定为SqlCommand对象的命令文本的SQL语句,并返回受SQL语句影响或检索的行数。A.ExecuteNonQuery B.ExecuteReaderC.ExecuteQuery D.ExecuteScalar66、在WinForms中,为了防止用户无意关闭窗体,需要在( A )事件中编写代码,提示用户是否关闭窗体。A.Closing B.Closed C.Load D.VisibleChanged67、在ADO.NET中,SqlConnection 类所在的命名空间是( D )。A.System B.System.Data C.System.Data.OleDb D.System.Data.SqlClient*68、在Winforms窗体中,有一名为txtUser的TextBox控件,其MaxLength属性为5,该控件的当前文本为“网络编程”,若再执行代码:txtUser.AppendText(“高手”);则控件的文本为( C )。A.网络编程 B.网络编程高 C.网络编程高手 D.出现运行时错误69、在C#中,让线程启动的方法是( A )A、Start() B、Resume() C、Thread() D、Process()70、在C#中,销毁线程的方法是( D )A、Stop() B、Close() C、End() D、Abort()71、在C#中,让线程休眠的方法是( B )A、Bed () B、Sleep() C、Asleep () D、Dormant ()72、IPAddress类所在的命名空间是( B )A、System.Threading;B、usingSystem.Net;C、System.Net.Sockets;D、System;73、在IPAddress类的( A )属性表示本地系统可用的任何IP地址A、AnyB、BroadcastC、LoopbackD、None74、在IPAddress类的( B )属性表示本地网络的IP广播地址A、AnyB、BroadcastC、LoopbackD、None75、在IPAddress类的( C )属性表示系统的回送地址A、AnyB、BroadcastC、LoopbackD、None76、在C#中,Dns类 的GetHostByName方法返回类型中( D )A、int B、String C、Socket D、IPHostEntry77、在C#中,生成TCP套接字的语句,以下正确的是(A)A、Socket temp = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) B、Socket temp = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)C、Socket temp = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Raw)D、Socket temp = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Ip)78、在C#中,以下( C )不是Socket.ShutDown的枚举值。A、SocketShutDown.Both B、SocketShutDown.Receive C、SocketShutDown.None D、SocketShutDown.Send79、在C#中,异步套接字中方法BeginAccept()方法返回类型是( B )A、int B、IAsyncResult C、Socket D、string80、在C#中,UdpClient的( C )方法将套接安加入组播组中。A、Add() B、AddInto( ) C、JoinMulticastGroup() D、Join()81、在C#中,UdpClient的( D )方法用于断开与一个组播组的连接A、Abort() B、Stop() C、Break() D、DropMulticastGroup() ?82、在C#中,工作于同步方式下时,UdpClient的( D )方法将产生阻塞。A、Bind() B、Connect() C、Close() D、Receive()83、在GDI+中的Graphics的( D ),用于画直线。A、DrawLine()B、Line()C、DrawLineTo()D、PointToPoint()84、DateTime类的( A )属性可以获得系统当前日期和时间A.NowB.TodayC.TomorrowD.ThisTime85、下列代码执行后,将显示( B )Random rr=new Random();int k=rr.Next(10,100)A、0=k100之间的随机数B、10=k100之间的随机数C、10=k=100之间的随机数D、0=k=100之间的随机数86. 在C#中,假设Class1是一个类,而IExample是一个接口,下面的( A )类声明是正确的。A、 class Employee: Class1, IExampleB、 class Employee: IExample, Class1C、 class Employee- Class1, IExampleD、 class Employee: Class1/Iexample87、如果希望类的某个方法能够在子类中进一步进行改进,以处理不同的子类的需要,则应将该方法声明成( C )A、 sealed 方法B、 public 方法C、virtual 方法D、override方法88.有如下程序 using system;( C ) class Program public static void Main(strng args) int x=1,a=0,b=0; switch(x) Case 0:b+,break; Case 1:a+,break; Case 2:a+,b+,break; Console.Writeline(“a=0,b=1”,a,b); 的输出结果是A、a=2,b=1 B、a=1,b=1 C、a=1,b=0 D、a=2,b=289.using namespace的作用是( A )A、引入命名空间 B、使用数据库 C、使用一个文件 D、使用一段程序90、在C#中有一个Windows窗体,该窗体中有一个名为btClose的按钮控件,程序员为该控件邦定了Click事件,该事件的处理程序如下所示,程序运行时,用户点击btClose按钮后,程序将( A )。Application.Exit();/结束应用程序MessageBoxShow(“再见!”);A、直接退出B、关闭当前窗体,程序并不退出C、关闭当前窗体并显示消息框后,程序退出D、显示消息框,程序并不退出91、 在WinForms应用程序中,当需要将窗体关闭时,需要调用窗体的( D )方法。A、Activate B、Stop C、Show D、Close92、在使用C#开发Windows应用程序时,在窗体上放置一个名为lblMessage的标签控件,用户希望此标签的宽度根据其文本内容的长短而变化,那么开发人员应当使用如下( B )语句对该标签控件进行初始化设计A、lblMessage.AutoWide=true; B、lbMessage.AutoSize=true;C、lblMessage.AutoWide=false; D、lblMessage.AutoSize=false;93. 要使文本框控件能够输入口令(无论输入什么字符,均显示同一字符),应设置它的( A )属性A、PasswordChar B、ScrollBars C、Text D、MaxLength94. WinForm 中, 在为了禁用一个名为 btnOpen 的 Button 控件, 下列做法正确的是 。 ( B ) A、btnOpen.Enable=true; B、btnOpen.Enable=false; C、btnOpen.Visible=false; D、btnOpen.Visible=true; 95. 向数据源插入一条记录,需要将命令对象的CommandText属性设置为Sql语言的Insert命令后,再调用命名对象的( A )方法A、 ExecuteNonQuery B、ExecuteReaderC、 ExecuteScalar D、ExecuteXmlReader96 将数据集中的数据同步到数据源中去,必须调用DataAdapter对象的( A )方法A、Fill B、Dispose C、Update D、ToString()97. 数据集DataSet与Sql数据源之间的桥梁是( B )A、 SqlConnection B、SqlDataAdapter C、SqlCommand D、SqlTransaction98、在c#中,如果想要修改Windows窗体的边框样式,需要修改该窗体的( D )属性。A、StartPosition B、BackColot C、ShowInTaskbar D、FormBorderStyle99.下列( B )不是类的成员的访问修饰符A、private B、base C、public D、protected100、在Windows应用程序中,当需要将窗体显示为模式对话框时,需要调用窗体的( B )A、Activate() B、ShowDialog() C、Show() D、Close()101、 以下哪些不是UDP协议的特性( A )A、 提供可靠服务 B、 提供无连接服务C、 提供端到端服务 D、 提供全双工服务 102、 环回地址是指( B )。 A、 55B、 C、 55D、 103控件是一个类,在窗体上创建一个控件对象,那么下面( A )属性是控件对象名称(即在程序中引用的名称)。ANameBTextCFontDTextAlign104窗口打开时触发的事件是( C )。AClickBEnterCLoadDMouseMove105、下面描述错误的是( B )。APen类主要用于绘制线条BBrush类主要用于定义绘图的线条的粗细CFont类主要用于控制文本的字体样式DColor类用于设置颜色二、简答题1什么是线程池?使用线程池有什么好处?答:线程池是在后台执行多个任务的线程集合。使用线程池接受传入的请求,每个传入请求都分配给线程池中的一个线程,从而达到异步处理请求的目的。在服务器应用程序中,如果每到一个请求就创建一个新线程,然后在新线程中为其请求服务的话,将不可避免的造成系统开销的增大。实际上,创建太多的线程可能会导致由于过度使用系统资源而耗尽内存。为了防止资源不足,服务器应用程序可以采用线程池来限制同一时刻处理的线程数目。线程池不会占用主线程,也不会延迟后续请求的处理。一旦池中的某个线程完成任务,它将返回到等待线程队列中,等待被再次使用。这种重用使应用程序可以避免为每个任务创建新线程引起的资源和时间消耗。2. 线程是如何创建的?怎样设置线程的优先级?答:C#中创建线程的工作是通过使用System.Threading名称空间下的Thread类的构造方法来完成的,如创建一个线程实例输出字符“a”1000次。Thread thread = new Thread(new ThreadStart(func1);thread.Priority =ThreadPriority.Normal;thread.Start();static void func1()for(int i =0;i1000;i+)Console.WriteLine(a); C#中System.Threading名称空间下的ThreadPriority枚举类定义了线程可能具有的所有优先级的值,优先级由高到低排序为:Highest,AboveNormal,Normal,BelowNormal,Lowest。可以通过访问线程的Priority属性来获取和设置其优先级。每个线程都具有分配给它的线程优先级。在公共语言运行库中创建的线程最初分配的优先级为ThreadPriority.Normal。在运行库以外创建的线程保留它们在进入托管环境之前具有的优先级。可以使用Thread.Priority属性获取或设置任何线程的优先级。*3.使用DNS类和IPHostEntry类创建一个如下图所示的域名解析器。用户输入主机名或者DNS域名以后,能在下面的列表框中显示与主机或者DNS域名对应的IP地址和别名。注:输入主机名的文本框名为textBox1;输入DNS主机名的文本框名为textBox2;显示IP地址的列表框名为listBox1;显示别名的列表框名为listBox2答:1) 主要源程序如下:using System.Net;private void button1_Click(object sender, EventArgs e) try this.Cursor = Cursors.WaitCursor; /解析主机名 IPHostEntry IPinfo = Dns.GetHostEntry(textBox1.Text); /清空列表框 listBox1.Items.Clear(); listBox2.Items.Clear(); /显示IP地址 foreach (IPAddress IP in IPinfo.AddressList) listBox1.Items.Add(IP.ToString(); /显示别名 foreach (string alias in IPinfo.Aliases) listBox2.Items.Add(alias); /显示主机名 textBox2.Text = IPinfo.HostName; catch (Exception ex) MessageBox.Show(ex.Message); finally this.Cursor = Cursors.Default; *5、什么是套接字?套接字有哪几种不同的类型?答:套接字是引用网络连接的特殊的文件描述符,它有三个基本要素组成:网络类型、数据传输类型、采用的网络协议。Socket类的构造函数为:Socket(AddressFamily af,SocketType st,ProtocolType pt)其中,AddressFamily为网络类型,SocketType为数据类型,ProtocolTyp为使用的网络协议。Socket构造函数的三个参数中,对于网络上的IP通信来说,AddressFamily总是使用AddressFamily.InterNetwork枚举值。SocketType参数则与ProtocolType参数配合使用,不允许其它的匹配形式,也不允许混淆匹配。*6、说明面向连接套接字服务端编程的基本步骤。答:1) 生成一个服务器的IP地址和端口号的IpEndPoint对象2)创建一个包含使用的网络类型、数据传输类型和协议类型的本地套接字对象,3)并将其IpEndPoint对象与Socket类绑定。4) 在指定的端口进行监听,以便接受客户端连接请求。5) 一旦接受了客户端的连接请求,就根据客户端发送的连接信息创建与该客户端对应的Socket对象。6) 根据创建的Socket对象,分别与每个连接的客户进行数据传输。7) 根据传送信息情况确定是否关闭与对方的连接。7、什么是网络流?网络流的基本操作有哪些?答:可以将NetworkStream看作在数据来源端和接收端之间架设了一个数据通道,这样一来,读取和写入数据就可以针对这个通道来进行。NetworkStream流具有读取和写入两个基本操作。对于NetworkStream流,写入操作是指从来源端内存缓冲区到网络上的数据传输;读取操作是从网络上到接收端内存缓冲区(如字节数组)的数据传输。网络流不具有查找操作。8、利用StreamWriter与StreamReader类读写流具有什么样的优势?答:NetworkStream、MemoryStream和FileStream类都提供了以字节为基本单位的读写方法,但是这种方法需要首先将待写入的数据转化为字节序列后才能进行读写,当操作的是使用字符编码的文本数据时,使用很不方便。因此,在操作文本数据时,一般使用StreamWriter、StreamReader执行这些功能。*8TCP有哪些主要特点?答: TCP最主要的特点是:(1)是面向连接的传输层协议;(2)每个TCP连接只能有两个端点,而且只能一对一通信,不能一点对多点直接通信;(3)通过TCP连接传送的数据,能保证数据无差错、不丢失、不重复地准确到达接收方,并且保证各数据到达的顺序与数据发出的顺序相同;(4)数据以字节流的方式传输;(5)传输的数据无消息边界。*9简要回答采用TcpListener类编写基于TCP的服务器端的一般步骤。答:使用对套接字封装后的类,编写基于TCP的服务器端程序的一般步骤为:(1)创建一个TcpListener对象,然后调用该对象的Start方法在指定的端口进行监听。(2)在单独的线程中,循环调用AcceptTcpClient方法接受客户端的连接请求,并根据该方法的返回的结果得到与该客户端对应的TcpClient对象。(3)每得到一个新的TcpClient对象,就创建一个与该客户对应的线程,在线程中与对应的客户进行通信。(4)根据传送信息的情况确定是否关闭与客户的连接。*10简要回答采用TcpClient类编写基于TCP的客户端程序的一般步骤。答:使用对套接字封装后的类,编写基于TCP的客户端程序的一般步骤如下:(1)利用TcpClient的构造函数创建一个TcpClient对象。(2)使用Connect方法与服务器建立连接。(3)利用TcpClient对象的GetStream方法得到网络流,然后利用该网络流与服务器进行数据传输。(4)创建一个线程监听指定的端口,循环接收并处理服务器发送过来的信息。(5)完成工作后,向服务器发送关闭信息,并关闭与服务器的连接。11解决TCP的无消息边界问题有哪些常用的方法? 答:常用的方法有三种:(1)发送固定长度的消息。适用于信息长度固定的场合。(2)将消息长度与消息一起发送。此方法适用于任何场合。(3)使用特殊标记分隔消息。适用于消息本身不包含特殊标记的场合。*12简述异步编程中基于IAsyncResult的异步设计模式。答:基于IAsyncResult的异步设计模式通过前缀分别为“Begin”和“End”的两个方法实现开始和结束异步操作,每个Begin方法都必须有一个与其对应的End方法。程序在调用Begin方法后,调用该方法的线程会继续执行其下面的语句,同时该方法用另一个单独的线程执行异步操作,当异步操作完成后,会返回一个实现IAsyncResult接口的对象,循环判断该对象的IsCompleted属性,来决定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024中铝(雄安)矿业有限责任公司实习生招聘4人笔试参考题库附带答案详解
- 医学妙谛全文
- 初中物理人教版九年级全册第十五章 电流和电路第1节 两种电荷教案
- 电子厂技能培训
- 高层消防安全培训
- 人教版八上道德与法治第四课 社会生活讲道德 第2课时 以礼待人教学设计
- 踔厉奋发 笃行不怠-学校召开新学期学生工作培训会
- 九年级历史上册 第一单元 跨入近代社会的门槛 第4课 为民族独立而战教学设计 北师大版
- 计算机组成原理选择题复习试题及答案
- 25工程语文练习卷含答案(一)
- 《电信基础设施维护规程》
- 医疗设备采购投标方案(技术方案)
- 原产地证书【模板】
- 国内种子企业AI应用场景探讨和管理模式研究
- 红楼梦第三回课件
- 抹灰石膏特供采购合同
- 2024年下半年环境保护部广州天河区华南环境科学研究所招考易考易错模拟试题(共500题)试卷后附参考答案
- 胃肠减压评分表
- 萨克斯教学课件
- 第4课 热在金属中的传递(说课稿)-2023-2024学年五年级下册科学教科版
- 中考化学复习反应微观示意图题课件
评论
0/150
提交评论