C#学习教程之Socket的简单使用

C#学习教程之Socket的简单使用

什么是Socket?

Socket(套接字)是支持TCP/IP协议的网络通信方式,它是一种用于网络通信的编程接口或应用程序编程接口(API),使得两个进程之间可以通过网络进行数据交互。在 C# 中,可以使用 System.Net.Sockets 命名空间中的类来实现 Socket 的编程。

如何实现 Socket 编程?

在 C# 中,我们可以借助 System.Net.Sockets 命名空间中的 Socket 类,来实现 Socket 编程。

下面是两条示例说明:

示例一:TCP 服务端

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

class Server
{
    static void Main(string[] args) 
    {
        // 创建一个 TCP/IP Socket 对象
        Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        // 获取本地 IP 地址和端口号
        IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);

        // 绑定 Socket 对象到本地地址
        listener.Bind(localEndPoint);

        // 开始监听
        listener.Listen(10);

        Console.WriteLine("等待客户端连接...");

        // 等待客户端连接
        Socket clientSocket = listener.Accept();

        Console.WriteLine("已经和客户端建立连接");

        byte[] buffer = new byte[1024];
        int bytesReceived = 0;

        // 接收客户端发送的数据
        do 
        {
            bytesReceived = clientSocket.Receive(buffer);

            string data = Encoding.ASCII.GetString(buffer, 0, bytesReceived);
            Console.WriteLine($"接收到客户端发送的数据:{data}");
        } while (bytesReceived > 0);

        // 关闭 TCP 连接
        clientSocket.Shutdown(SocketShutdown.Both);
        clientSocket.Close();
    }
}

示例二:TCP 客户端

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

class Client 
{
    static void Main(string[] args) 
    {
        // 创建一个 TCP/IP Socket 对象
        Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        // 获取服务器 IP 地址和端口号
        IPEndPoint remoteEp = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);

        // 连接到服务器
        clientSocket.Connect(remoteEp);

        Console.WriteLine("已经和服务器建立连接");

        // 向服务器发送数据
        string message = "Hello, server!";
        byte[] buffer = Encoding.ASCII.GetBytes(message);
        clientSocket.Send(buffer);

        // 关闭 TCP 连接
        clientSocket.Shutdown(SocketShutdown.Both);
        clientSocket.Close();
    }
}

总结

本篇文章介绍了 C# 中 Socket 的简单使用,包括创建 Socket 对象、绑定到本地地址、开始监听、接收数据、发送数据等操作。希望可以帮助初学者了解 Socket 的使用方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#学习教程之Socket的简单使用 - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • 写给想学习Javascript的朋友一点学习经验小结

    针对这个问题,我会分为以下四个部分进行回答: 网站中提供的资源和工具 如何学习Javascript 学习Javascript的思路和技巧 示例说明 网站中提供的资源和工具 首先,我自己的网站中提供了一些有关学习Javascript的资源和工具,这些资源和工具可以帮助你加深对Javascript的理解。其中包括: 文章和教程:网站中有一些文章和教程,可以帮助你…

    C# 2023年6月6日
    00
  • asp.net中SqlCacheDependency缓存技术概述

    下面是详细讲解“asp.net中SqlCacheDependency缓存技术概述”的完整攻略。 什么是SqlCacheDependency缓存技术 在ASP.NET中,我们通常使用缓存技术来提高网站的访问速度和性能。SqlCacheDependency缓存技术是ASP.NET提供的一种高级缓存技术。它通过监视SQL Server数据库的表或视图上所做的更改来…

    C# 2023年5月31日
    00
  • ASP.NET Core 3.0使用gRPC的具体方法

    ASP.NET Core 3.0使用gRPC的具体方法 简介 gRPC 是由 Google 开发的一种高性能、开源的远程过程调用(RPC)框架。它使用 Protocol Buffers 作为数据交换格式,可以在多种语言之间进行通信。在 .NET Core 3.0 中,我们可以通过 gRPC 快速建立一个高效的微服务。 快速入门 创建 gRPC 服务 我们可以…

    C# 2023年6月3日
    00
  • C# WinForm实现自动更新程序的方法详解

    C# WinForm实现自动更新程序的方法详解 在开发Windows应用程序时,自动更新功能是一项非常重要的功能。本文将介绍如何使用C# WinForm实现自动更新程序的方法。 第一步:设计自动更新界面 在设计WinForm的自动更新界面中,需要考虑以下几个方面: 显示当前应用程序版本号和更新版本号; 显示更新进度和下载速度; 提供更新日志和更新说明; 提供…

    C# 2023年6月1日
    00
  • 学习TraceLogging事件,使用ETW记录,并使用WPA捕获和分析跟踪

    优化响应行为的交互 下载WINDOWS评估和部署工具包 (Windows ADK) 保持默认安装 驱动延迟优化的基本步骤包括: 定义方案并添加 TraceLogging 事件。TraceLogging 是用于日志记录事件的系统,无需清单即可解码,TraceLogging基于windows事件跟踪(ETW),并提供检测代码的简化办法。C#可选的有.NET Ev…

    C# 2023年4月27日
    00
  • AutoMapper实体映射基本用法

    AutoMapper是一种.NET库,用于将一种类型的对象映射到另一种类型的对象。使用AutoMapper,可以大大简化从一个模型对象映射到另一个模型对象的过程,特别是在大型应用程序中。以下是AutoMapper实体映射基本用法的完整攻略: 安装AutoMapper 在Visual Studio中,可以通过NuGet安装AutoMapper。在NuGet包管…

    C# 2023年6月3日
    00
  • C# 整数转二进制字符串方式

    C# 整数转二进制字符串方式 在 C# 中,可以通过下列方法将整数转换为二进制字符串。 方法一 – 转换为字符串 通过 Convert.ToString() 方法,以及使用二进制基数,将整数值转换为二进制字符串。 int number = 42; string binaryString = Convert.ToString(number, 2); Conso…

    C# 2023年6月8日
    00
  • 使用Log4net进行日志记录

    使用Log4net进行日志记录是一项非常重要的任务,因为它可以帮助开发者更好地了解应用程序的运行状态,检测并解决在调试和测试期间遇到的问题。下面就是关于如何使用Log4net进行日志记录的完整攻略: 步骤一:安装Log4net 首先,你需要在你的应用程序中下载并安装Log4net。你可以在NuGet管理器中搜索“log4net”,然后安装最新版本。 步骤二:…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部