c#的基于Socket客户端与服务端通信

文章目录

      • 一、Socket相关知识
        • 1.1 什么是Socket
        • 1.2 Socket的本质
        • 1.3 Socket的作用
        • 1.4Socket编程方式
        • 1.5 数据传输方式
      • 二、Socket基本工作流程
        • 2.1 Socket类的主要方法
        • 2.2服务器端程序编写步骤
        • 2.3 客户端程序编写步骤
        • 2.4 Socket通信基本流程图
      • 三、socket客户端与服务端通信demo

一、Socket相关知识

1.1 什么是Socket

套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。通过Socket,一台计算机可以接收其他计算器的数据,也可以向其他计算机发送数据。

1.2 Socket的本质

Socket的本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。

1.3 Socket的作用

Socket的英文翻译“孔”,通常也称作“套接字”,可以用来实现不同虚拟机或不同计算机之间的通信。

1.4Socket编程方式

socket起源于Unix,而Unix、Linux的思想是“一切皆文件”,都可以用“打开open->读写write/read->关闭close”模式操作。Socket就是该模式来实现的,Socket即是一种特殊的文件,一些Socket函数就是对其进行读/写IO、打开、关闭等操作。

1.5 数据传输方式

常用的用两种:流套接字(STREAM)和数据报套接字(DGRAM)

  • 流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP协议 。
  • 数据报套接字提供一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP协议进行数据的传输。

二、Socket基本工作流程

2.1 Socket类的主要方法

主要方法
Socket () 创建一个Socket
Bind() 绑定一个本地的IP和端口号(IPEndPoint)
Listen() 让Socket侦听传入的连接尝试,并指定侦听队列容量
Connect() 初始化与另一个Socket的连接
Accept() 接收连接并返回一个新的socket
Send() 输出数据到Socket
Receive() 从Socket中读取数据
Close() 关闭Socket (销毁连接)

2.2服务器端程序编写步骤

  1. 第一步:调用socket()函数创建一个用于通信的套接字。
  2. 第二步:给已经创建的套接字绑定一个端口号,通过设置网络套接口地址和调用bind()函数来实现。
  3. 第三步:调用listen()函数使套接字成为一个监听套接字。
  4. 第四步:调用accept()函数来接受客户端的连接,这时就可以和客户端通信了。
  5. 第五步:处理客户端的连接请求。
  6. 第六步:终止连接。

2.3 客户端程序编写步骤

  1. 第一步:调用socket()函数创建一个用于通信的套接字。
  2. 第二步:通过设置套接字地址结构,说明客户端与之通信的服务器IP地址和端口号。
  3. 第三步:调用connect()函数来建立与服务器的连接。
  4. 第四步:调用读写函数发送或者接受数据。
  5. 第五步:终止连接。

2.4 Socket通信基本流程图

c#的基于Socket客户端与服务端通信_第1张图片

三、socket客户端与服务端通信demo

通讯demo在我下一个博客哦。
https://blog.csdn.net/weixin_43482965/article/details/116405984

你可能感兴趣的:(c#,socket,c#)