Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# socket通信

作者:无声飞雪   发布日期:2026-02-20   浏览:61

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

namespace SocketExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个Socket对象,指定协议类型为IPv4和TCP
            Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            // 绑定到本地IP地址和端口
            IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, 12345);
            serverSocket.Bind(localEndPoint);

            // 开始监听连接请求
            serverSocket.Listen(10);
            Console.WriteLine("服务器已启动,等待客户端连接...");

            // 接受客户端连接
            Socket clientSocket = serverSocket.Accept();
            Console.WriteLine("客户端已连接");

            // 接收数据
            byte[] buffer = new byte[1024];
            int receivedBytes = clientSocket.Receive(buffer);
            string receivedMessage = Encoding.UTF8.GetString(buffer, 0, receivedBytes);
            Console.WriteLine($"收到消息: {receivedMessage}");

            // 发送响应
            string responseMessage = "Hello from server!";
            byte[] responseBuffer = Encoding.UTF8.GetBytes(responseMessage);
            clientSocket.Send(responseBuffer);

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

解释说明

  1. 创建Socket对象:

    • 使用 new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) 创建一个TCP类型的Socket对象。
  2. 绑定到本地IP和端口:

    • 使用 IPEndPoint 指定本地IP地址和端口号,并通过 Bind 方法将Socket绑定到该端点。
  3. 开始监听连接请求:

    • 使用 Listen 方法使Socket进入监听状态,参数表示最大挂起连接数。
  4. 接受客户端连接:

    • 使用 Accept 方法阻塞等待客户端连接,连接成功后返回一个新的Socket对象用于与客户端通信。
  5. 接收数据:

    • 使用 Receive 方法从客户端接收数据,数据存储在字节数组中,然后使用 Encoding.UTF8.GetString 将字节数组转换为字符串。
  6. 发送响应:

    • 使用 Send 方法向客户端发送响应消息,先将字符串转换为字节数组。
  7. 关闭连接:

    • 使用 ShutdownClose 方法关闭Socket连接。

上一篇:c#winform

下一篇:c# begininvoke

大家都在看

c# 二进制

c# 创建目录

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站