论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
C#Socket
C#Socket
用户云卷云舒
论坛元老
|
2022-9-1 16:07:46
|
显示全部楼层
|
阅读模式
楼主
主题
1656
|
帖子
1656
|
积分
4968
一.网络协议
如果要理解Socket,要熟悉TCP/IP即传输控制协议/网间协议,定义了主机如何连入因特网,数据如何在它们之间传输的标准。
TCP/IP协议参考模型,把所有的TCP/IP系列协议归类到四个抽象层中:应用层,传输层,网络层,数据链路层,每一抽象层建立在低一层提供的服务上,并且为高一层提供服务。
互联网为什么分层?
层与层之间定好规则(就是接口),每一层做好自己的事,层可以内部演化。
协议:规范,遵守的规则
一共分为几层?5层,下面具体分析一下这5层
实体层
物理连接,光纤/电缆等。传递的是0和1
链接层
规定一下0和1的解读方式。
以太网
大概是一组信号当做数据包,成为帧-Head-data
Head:描述信息(发送者---接收者)
Data:真实数据
数据必须是网卡到网卡的(每个网卡有Mac地址)
广播一下,对着局域网的全部网卡都发一遍
互联网是多个局域网组成的。局域网是子网络。
网络层
解决不同的计算机,在不同的局域网通讯问题。
IPV4确定属于哪个子网,独立的IP比较贵的。每个计算机都有一个IP地址:192.168.1.1一共32位的
把帧里面data分成2块(Head包括IP地址+长度,data真实数据)
帧长度是有限制的,如果超过,会拆成不同的包,每个包都有head和包序号
传输层
问题:电脑里面多个程序都使用网络,帧过来,到底给那个程序?得有个东西,告诉去给那个程序。(端口改闪亮登场了....)
保证:电脑上的某程序的信息,发送到某个电脑上的某个程序。
端口:0~65535,其中0到1023系统用的。保证程序和程序进行交流
主机+端口=套件字(Socket),socket其实就是保证分布在不同电脑的程序交互,可以做网络应用程序
开发
UDP协议,把data拆分成head+data(head只放端口)。不保证数据一定会被收到。特点:简单,可靠
TCP协议,数据的可达性,确保数据不丢失,确认过程。复杂版本的UDP。特点:负载低效,抵消更多资源,可靠。
应用层
http协议举例,说明data数据里面的含义。指定data里面什么格式,什么意义。
二.网络通讯
推荐一个框架,跨平台的
中文网站
https://www.supersocket.net/
Supersocket有三大对象:Session,AppServer,Commands
Session:每个用户的连接,就是一个Session
AppServer:Socket服务器的实例
Commands:客户端回发数据的命令
客户端发的信息格式:CommandName+空格-+参数0+空格+参数1+空格+参数N+\r\n
服务端的处理:CommandName命令类来处理
心跳检测机制:
用来检测客户端是否掉线
,客户端在线,间隔时间内服务器发送一个心跳包,服务器返回应答。
如果心跳周期内,没收到,服务器就认为你下线了
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
用户云卷云舒
论坛元老
这个人很懒什么都没写!
楼主热帖
更新:)
期末作业C#实现学生宿舍管理系统 ...
更新:)
揭秘爆款的小程序,为何一黑到底 ...
Nginx 配置和性能调优
送分题,ArrayList 的扩容机制了解吗? ...
程序员必学的项目管理知识-敏捷开发 ...
北京动点元宇宙外包团队:微软入局工业 ...
解决Kali Linux换国内源后更新失败的问 ...
IOS开发
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表