文档视界 最新最全的文档下载
当前位置:文档视界 › C#网络编程重点、难点分析

C#网络编程重点、难点分析

C#网络编程重点、难点分析
C#网络编程重点、难点分析

1.进程,线程的概念,什么时候使用多线程技术

答:进程是对一段静态指令序列(程序)的动态执行过程,是系统进行资源分配和调度的基本单位。

同一个进程又可以划分为若干个独立的执行流,我们称之为线程。线程是

CPU调度和分配的最小单位。

什么时候使用多线程:做一个需要消耗大量时间的程序,会处于死机状态。2.启动一个线程的方法Thread类的使用,命名空间,调用的顺序,含义

答:首先创建一个线程,让其与方法相关联,然后再调用它的Start()方法,来启动一个线程。

引用命名空间using System.Threading;

调用顺序:启动线程,创建个Thread的对象

【Thread t=new Thread(Method1);t.Start(); 】 Method1是委托,系统分配的线程方法

终止线程【t.Abort();】

合并线程【t.Join();】

让线程休眠【Thread.Sleep(); 】

3.终止线程的方法有哪些,如何实现?

答:(1)用 Abort() 方法

(2)语句执行完毕,自动终止

4.对委托的理解,委托的语法

答:使用委托可以将方法引用封装在委托对象内,然后可以将该委托对象传递给所引用方法的代码,而不必在编译时知道将调用哪个方法。委托是面向对象、类型安全的。

(1)定义一个代理

public delegate void myDelegate(string str);

(2)申明函数

返回值和参数要与代理的一致;

public void AppendString(string str)

{

richTextBox1.Text += str;

}

(3)实例化一个代理(将代理和对应函数建立联系)

myDelegate md=new myDelegate(AppendString);//参数是函数名

(4)代理的使用

richTextBox1.Invoke(md, "b");

5.在一个线程中如何操作另一个线程的控件

答:通过一个控件的Invoke(委托名,参数)方法,再加上委托来完成

6.如何使用IPAddress类

答:IPAddress类提供了对IP地址的转换、处理等功能。

IPAddress ip=IPAddress.Parse(“192.168.19.1”);

7.Dns类中的相关方法

答:(1)Dns.GetHostName()用于得到主机名

(2)Dns.GetHostAddresses()用于得到所有的IP地址

(3)Dns.GetHostEntry() 用于得到IPHostEntry的事例

8.如何创建一个Socket对象,几个参数的含义

答:首先引用命名空间using https://www.docsj.com/doc/2818110510.html,;

using https://www.docsj.com/doc/2818110510.html,.Sockets;

Tcp: Socket serSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

Udp:Socket udpClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

AddressFamily—网络类型SocketType—套接字类型ProtocolType—协议类型

服务端:Socket()Bind()Listen()Accept()Receive()Send()Close()

创建套接字绑定监听发送接收

客户端:Socket()Connect()Send()Receive()Close()

9.网络流NetWorkStream的作用,Udp有网络流吗?

答:用于通过网络套接字发送和接收数据

Udp 没有网络流

10.采用Socket类进行通信的基本步骤以及编码实现过程,包括客户端和服务端

(书上图P17)

11.什么是同步方式

答:同步方式是指利用TCP编写的程序执行到发送、接收或监听语句时,在未完成工作前,不再继续往下执行,即处于阻塞状态,直到该语句完成相应的工作后才继续执行下一条语句。

12.Tcp同步编程服务端有哪些调用,分别完成什么功能

答:(1)Socket创建一个Socket对象

(2)Bind()绑定端点(地址与端口号)

(3)Listener()监听操作

(4)Accept()接收连接

(5)Receive() & Send() 接收和发送

(6) Close() 关闭

13.Tcp同步编程客户端有哪些调用,分别完成什么功能,阻塞在那个调用那儿?

答:(1)Socket 创建一个Socket对象

(2)Connect() 用于建立连接操作

(3) Send() & Receive()接收和发送

(4) Close() 关闭

14.对异步操作的理解

答:能够在工作尚未完成的时候,继续处理其它工作。

实现异步的机制是什么:多线程。利用多线程,把费时耗力的工作交给一个新开辟的线程来做。

15.Tcp异步编程,BeginXXXX方法的参数是什么,异步回调是什么?

答:肯定会有两个参数, 1.异步回调的方法 2.所要传送的Object类型的参数异步回调:在异步操作方式下,由于程序可以在启动异步操作后继续执行其它代码,因此必须要有一种机制,以保证该异步操作完成时能及时通知调

用者。可以通过 AsyncCallback 委托来实现。

16.Tcp编程中用到哪些类

答:Tcp:Socket 类 TcpLisenser 类 TcpClient 类

IpAddress,IpEndPoint,NewtworkStream

UDP:UdpClient,IpAddress,IpEndPoint,NetworkStream

17.Udp与Tcp区别与联系,各自的有缺点

答:Tcp 是基于流的套接字,而Udp是基于数据报的套接字。

Tcp是一种有连接的,可靠的套接字,传送时不易掉包

Udp是一种无连接的,不可靠的套接字,易掉包

都是网络协议。都是支持TCP/IP的套接字

18.Udp如何发送数据,有哪些参数,什么含义

答:直接调用UdpClient对象的Send()方法

Send(byte[] data,int Lenth,IPendPoint iep);

三个参数:数据,数据长度,远程IPEndPoint对象。

19.Udp如何接收数据,有哪些参数,什么含义

答:直接调用UdpClient对象的Receive()方法

byte[] data = UdpClient.Receive(ref remoteEndPoint);

将远程主机的IPEndPoint

20.组播与广播的概念,实现过程,Tcp与Udp哪个协议能组播与广播

答:广播——就是指同时向子网中的多台计算机发送消息,并且所有子

网中的计算机都可以接收到发送发发来的消息。

组播——就是将消息从一台计算机发送到本网或全网内选择的计算机子集

上,即发送到那些加入指定组播组的计算机上。

广播分两种:本地广播和全球广播。

本地广播,要求将IP地址的最有一个点分十进制的数据写成 255

全球广播,要求将IP地址全部写为 255.255.255.255

要想实现广播与组播,必须将端口号设为相同

实现组播:

(1)myUdpClient.Ttl=50;将UdpClient对象的Ttl属性设置

(2)myUdpClient.JoinMulticastGroup(IPEndPoint);

或 myUdpClient.JoinMulticastGroup(“224.100.0.1”);

21.D类地址的作用与取值范围

答:D类地址供UDP 实现组播。

取值范围:224.0.0.0 ~239.255.255.255

22.EventWaitHandle类的使用

WaitOne Reset Set 方法的作用

答:引入命名空间using System.Threading;

对EventWaitHandle进行实例化

对象.Reset(); 将其设为非终止状态(红灯)

对象.Set(); 将其设为终止状态(绿灯)

对象.WaitOne(); 将其设为等待状态(等待)

23.Udp的编程:创建对象,创建线程,接受数据,显示信息(不考虑跨线程修改控件,用通融的方法

Control.CheckForIllegalCrossThreadCalls=false)

24.简单的调试技巧,如一些功能键的功能(F5 F10 F11等)

答:F5——直接调试

F10——逐过程调试

F11——逐语句调试

25.如何处理异常

答:使用try……catch……finally……

相关文档