永发信息网

c#怎样创建tsl的安全socket通道

答案:1  悬赏:20  手机版
解决时间 2021-02-26 02:04
c#怎样创建tsl的安全socket通道
最佳答案
在使用之前,你需要首先创建Socket对象的实例,这可以通过Socket类的构造方法来实现:

public Socket(AddressFamilyaddressFamily,SocketType socketType,ProtocolTypeprotocolType);

其中,addressFamily 参数指定 Socket 使用的寻址方案,socketType 参数指定 Socket的类型,protocolType 参数指定 Socket 使用的协议。

下面的示例语句创建一个 Socket,它可用于在基于TCP/IP 的网络(如 Internet)上通讯。
Sockets = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp);

若要使用 UDP 而不是 TCP,需要更改协议类型,如下面的示例所示:
Sockets = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,ProtocolType.Udp);

一旦创建Socket,在客户端,你将可以通过Connect方法连接到指定的服务器,并通过Send/SendTo方法向远程服务器发送数据,而后可以通过Receive/ReceiveFrom从服务端接收数据;而在服务器端,你需要使用Bind方法绑定所指定的接口使Socket与一个本地终结点相联,并通过Listen方法侦听该接口上的请求,当侦听到用户端的连接时,调用Accept完成连接的操作,创建新的Socket以处理传入的连接请求。使用完Socket 后,记住使用 Shutdown 方法禁用 Socket,并使用 Close 方法关闭Socket。其间用到的方法/函数有:

Socket.Connect方法:建立到远程设备的连接
public void Connect(EndPoint remoteEP)(有重载方法

Socket.Send 方法:从数据中的指示位置开始将数据发送到连接的 Socket。
public int Send(byte[], int,SocketFlags);(有重载方法)

Socket.SendTo 方法 将数据发送到特定终结点。
public int SendTo(byte[], EndPoint);(有重载方法)

Socket.Receive方法:将数据从连接的 Socket接收到接收缓冲区的特定位置。
public int Receive(byte[],int,SocketFlags);

Socket.ReceiveFrom方法:接收数据缓冲区中特定位置的数据并存储终结点。
public int ReceiveFrom(byte[], int, SocketFlags, refEndPoint);

Socket.Bind 方法:使 Socket 与一个本地终结点相关联:
public void Bind( EndPoint localEP );

Socket.Listen方法:将 Socket 置于侦听状态。
public void Listen( int backlog );

Socket.Accept方法:创建新的 Socket 以处理传入的连接请求。
public Socket Accept();

Socket.Shutdown方法:禁用某 Socket 上的发送和接收
public void Shutdown( SocketShutdown how );

Socket.Close方法:强制 Socket 连接关闭
public voidClose();

可以看出,以上许多方法包含EndPoint类型的参数,在Internet中,TCP/IP使用一个网络地址和一个服务端口号来唯一标识设备。网络地址标识网络上的特定设备;端口号标识要连接到的该设备上的特定服务。网络地址和服务端口的组合称为终结点,在.NET 框架中正是由 EndPoint类表示这个终结点,它提供表示网络资源或服务的抽象,用以标志网络地址等信息。.Net同时也为每个受支持的地址族定义了 EndPoint的子代;对于 IP 地址族,该类为 IPEndPoint。IPEndPoint类包含应用程序连接到主机上的服务所需的主机和端口信息,通过组合服务的主机IP地址和端口号,IPEndPoint类形成到服务的连接点。

用到IPEndPoint类的时候就不可避免地涉及到计算机IP地址,.Net中有两种类可以得到IP地址实例:

IPAddress类:IPAddress 类包含计算机在IP 网络上的地址。其Parse方法可将 IP 地址字符串转换为 IPAddress 实例。下面的语句创建一个 IPAddress实例:
IPAddress myIP =IPAddress.Parse("192.168.1.2");
Dns 类:向使用 TCP/IP Internet 服务的应用程序提供域名服务。下面的代码获取一个 IPAddress实例,该实例包含服务器 accp 的 IP 地址。
IPAddressipAddress =Dns.GetHostAddresses("accp")[0];

在掌握上面得知识后,下面的代码将该服务器主机( accp 的 IP 地址与端口号组合,以便为连接创建远程终结点:
IPEndPoint ipe = newIPEndPoint(ipAddress,11000);

确定了远程设备的地址并选择了用于连接的端口后,应用程序可以尝试建立与远程设备的连接。

最后需要知道的是:Socket 类支持两种基本模式:同步和异步。其区别在于:在同步模式中,对执行网络操作的函数(如 Send 和Receive)的调用一直等到操作完成后才将控制返回给调用程序。在异步模式中,这些调用立即返回。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
驾驶员71岁还可以开车吗,说人大有新规定
7.5kw 污水泵,1小时大概能多少吨水?
叶斯琪英语名怎么读
日本税入是什么意思
鱼记老潼关肉夹馍在哪里啊,我有事要去这个地
小时候乳头发庠将乳头抓破,长大后乳头内陷,且
在新开小区门口开一个120平左右的超市大概投
谁知道手机能连上无线wifi怎么让我的电脑也连
有没有人知道古镇奇谭 迷醉下集李峰死的时候
1978年5月20-1981年1月1日大几岁
为什么我的line无法绑定手机号导致无法注册
热柠檬水喝多了点怎么皮肤变黑了,想了解些柠
【观察下列每组算式,并根据你发现的规律填空4
精琢广告传媒在什么地方啊,我要过去处理事情
星际争霸2使徒飘进去的时候怎么取消
推荐资讯
天猫分销平台是什么
为什么六亲不认的人会事业有成?
苏北新鲜放心肉专卖我想知道这个在什么地方
(x-2y)dy+dx=0的通解求求怎么写啊
二里庄小区南门地址在什么地方,想过去办事
女友爱浪漫,送女友自己在“印记工坊”音乐相
长治市国税局飞龙小区住宅区我想知道这个在什
天津有哪些靠谱大企业招聘?
交通事故在一个星期六的下午在进村路口拐弯把
What is Rober's job?这里为什么是写Rob
为什么我4g卡在2g手机上不能用了
梦见死去很久的亲人
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?