三、基于TCP协议的面向连接的套接字(Internet Socket)
四、基于UDP协议的无连接的套接字(Datagram Sockets)
五、C# 实现socket服务端与客户端通信
六、效果展示
一、socket通信
socket翻译成中文就是“套接字”的意思,所谓的socket编程就是指用计算机语言通过编程来实现计算机之间的通信问题。socket通信技术就是两台联网或者多态联网的计算机之间的数据交互技术。

二、socket典型应用
socket最典型的应用就是web服务器和浏览器。
1、浏览器获取用户输入的URL(全球资源定位符),向web服务器发送请求;
2、web服务器接收到URL并进行分析,将对应的网络内容以及资源返回给浏览器;
3、浏览器接收到web服务器返回的网页内容以及资源,将其进行解析和渲染,将最终的效果展示给用户。

三、基于TCP协议的面向连接的套接字(Internet Socket)
1、TCP:The Transmission Control Protocol 传输控制协议。
2、我们经常讲的套接字也就是Internet Scoket,根据数据传输方式,可以将Internet Scoket分为几种,在使用socket()创建网络连接时,必须告诉它是哪一种数据传输方式,简单来说就是数据传输的控制协议。
计算机领域称之为:流格式套接字(Stream Sockets),在计算机代码中使用SOCK_STREAM表示。
3、SOCK_STREAM有以下特点:
-
可靠的、双向的通信数据流;
-
数据传输是按照顺序进行的;
-
数据在传输中是准确无误的,是自带重发机制的;
-
数据的发送和接收是不同步的,存在缓冲区;
-
流格式套接字的典型应用就是HTTP协议,因为浏览器在加载进行解析时必须要数据完整正确。

四、基于UDP协议的无连接的套接字(Datagram Sockets)
1、UDP:User Datagram Protocol 用户数据报协议。
2、基于UDP协议的无连接的套接字,计算机领域称之为:数据报格式套接字(Datagram Sockets),计算机代码中使用SOCK_DGRAM表示。
SOCK_DGRAM是一种高效率、高速度、不可靠的通信数据流。其是基于UDP协议的,不用进行数据校验,只进行数据传输。
3、SOCK_DGRAM有以下特点:
-
每次传输数据大小有限制;
-
追求高效率、高速度;
-
传输的数据可能丢失或者损坏(小概率事件);
-
数据的发送和接收是同步的,也就是存在数据边界;
数据报格式的典型应用就是QQ视频和语音,因为这两者的需求是高效率和低延时,同时小概率的丢失数据不会影响整个数据的传输质量。
五、C# 实现socket服务端与客户端通信
-
模拟客户端向服务端发送数据
-
服务端:
private void socketServer()
{
Log("大家好,我是socket服务端!");
//1,创建socket using System.Net.Sockets;
//AddressFamily.InterNetwork内网,SocketType.Stream以流来通信,第三个为协议
Socket tcpSever = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//2,绑定服务器IP(计算机唯一标识)和端口号。端口号将通信数据给指定的软件。一个软件占用一个特定端口号(0-60000)
//查看本机IP:cmd-》ipconfig 本机局域网IP:198.168.1.2
//IPAddress ipAddress = new IPAddress(new byte[] { 192,168,1,2});
EndPoint point = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);//IPEndPoint是对IP+端口号的一层封装
tcpSever.Bind(point);//向操作系统申请一个可用的IP和端口号做通信。绑定当前IP和端口号
//3.监听。等待客户端连接
tcpSever.Listen(100);//参数是最大连接数
Socket clientSocket = tcpSever.Accept();//暂停当前线程,直到一个客户端连接过来,之后进行下面的代码。返回的socket为客户端socket
//使用返回的socket跟客户端做通信
本文介绍了socket通信的基础概念及其在Web服务器和浏览器中的应用。详细讲解了基于TCP协议的面向连接的套接字(InternetSocket)和基于UDP协议的无连接的套接字(DatagramSockets)的特性,并通过C#展示了如何实现socket服务端与客户端的通信。TCP套接字提供可靠、顺序的数据传输,而UDP套接字则追求高效、速度,但不保证数据完整性。

63

被折叠的 条评论
为什么被折叠?



