C#网络编程 (四) 套接字编程原理

本文详细介绍了C#中Socket类的使用,包括面向连接服务(TCP)和无连接服务(UDP)的特点,以及Socket类的创建、Bind、Listen、Accept、Connect、Receive/Send方法的使用。同时,给出了套接字的简单应用实例,展示了服务器端和客户端的代码实现。
摘要由CSDN通过智能技术生成

简述

面向连接服务(TCP)的主要特点有:
- 数据传输必须经过建立、维护和释放三个阶段
- 在传输过程中,个分组不需要携带目的主机的地址
- 可靠性好,但协议复杂,通信效率不高
面向无连接服务(UDP)的主要特点:
- 不需要连接的各个阶段
- 各个分组要携带完整的目的主机地址,在系统中独立传送
- 由于没有顺序控制,所以接收方的分组可能出现乱序,重复和丢失现象
- 通信效率高,但不能确保可靠性

Socket类的基本使用

Socket类的创建

Socket类的构造函数原型为:

public Socket(AddressFamily addressFamily,SocketType socketType,ProtocolType protocolType)

对于常规IP通信,AddressFamily只能使用AddressFamily、InetNetwork、SocketType参数需要和ProtocolType配合使用
套接字的组合方式

SocketType ProtocolType 说明
Dgram Udp 无连接的通信
Stream Tcp 面向连接的通信
Raw Icmp 基于ICMP协议的通信
Raw Raw 简单IP包的通信

流式套接字的创建实例

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

数据报套接字的创建实例

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

原始套接字的创建实例

Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp);

这里要注意学习socket的常用属性,通过这些可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值