Websocket客户端的JS代码:

var socket = new WebSocket("ws://localhost:8080");

socket.onopen = function() {
  console.log("连接已建立...");
};

socket.onerror = function(error) {
  console.log("连接错误:" + error);
};

socket.onmessage = function(event) {
  console.log("收到消息:" + event.data);
};

function sendMessage() {
  var message = document.getElementById("messageInput").value;
  socket.send(message);
}

Websocket服务端的C#代码:

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

namespace WebSocketServer
{
    class Program
    {
        static void Main(string[] args)
        {
            StartServer();
        }

        private static void StartServer()
        {
            byte[] buffer = new byte[1024];

            Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            serverSocket.Bind(new IPEndPoint(IPAddress.Any, 8080));
            serverSocket.Listen(10);

            Console.WriteLine("服务器启动成功,等待客户端连接...");

            Socket clientSocket = serverSocket.Accept();

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

            while (true)
            {
                int length = clientSocket.Receive(buffer);
                string message = Encoding.UTF8.GetString(buffer, 0, length);
                Console.WriteLine("收到消息:" + message);

                string replyMessage = "服务器已收到消息:" + message;
                clientSocket.Send(Encoding.UTF8.GetBytes(replyMessage));
            }
        }
    }
}

需要注意的是,Websocket协议的握手过程并不是普通的TCP连接建立过程,需要按照协议规定进行握手。在实现Websocket服务端时,需要对握手过程进行处理。

用js写一个webSocket客户端。在用C#写一个WebScoket服务端两个可以握手成功。互相发送信息

原文地址: https://www.cveoy.top/t/topic/Ys2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录