socket通讯

工作   2023-12-25 11:18   1270   0  

socket通讯

 

14281_yjyu_7607.jpg


using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Net.WebSockets;namespace WebSocketTest
{
   class Program
   {
       static void Main(string[] args)
       {
           Console.WriteLine("start....");
           //var server = new WebSocet();
           //server.StartAccept(socket =>
           //  {
           //      socket.OnOpen = () => Console.WriteLine("Open!");
           //      socket.OnClose = () => Console.WriteLine("Close!");
           //      socket.OnMessage = message => socket.Send(message);
           //  });            //int port = 1234;
           //string host = "127.0.0.1";            //IPAddress ip = IPAddress.Parse(host);
           //IPEndPoint ipe = new IPEndPoint(ip, port);            //Socket sSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
           //sSocket.Bind(ipe);
           //sSocket.Listen(0);
           //Console.WriteLine("监听已经打开,请等待");            ////receive message
           //Socket serverSocket = sSocket.Accept();
           //Console.WriteLine("连接已经建立");
           //string recStr = "";
           //byte[] recByte = new byte[4096];
           //int bytes = serverSocket.Receive(recByte, recByte.Length, 0);
           //recStr += Encoding.ASCII.GetString(recByte, 0, bytes);            ////send message
           //Console.WriteLine("服务器端获得信息:{0}", recStr);
           //string sendStr = "send to client :hello";
           //byte[] sendByte = Encoding.ASCII.GetBytes(sendStr);
           //serverSocket.Send(sendByte, sendByte.Length, 0);
           //serverSocket.Close();
           //sSocket.Close();            //int port = 1234;
           //string host = "127.0.0.1";//服务器端ip地址            //IPAddress ip = IPAddress.Parse(host);
           //IPEndPoint ipe = new IPEndPoint(ip, port);            // Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
           //clientSocket.Connect(ipe);            ////send message
           //string sendStr = "begin#70";
           //byte[] sendBytes = Encoding.ASCII.GetBytes(sendStr);
           //clientSocket.Send(sendBytes);            ////receive message
           //string recStr = "";
           //byte[] recBytes = new byte[4096];
           //int bytes = clientSocket.Receive(recBytes, recBytes.Length, 0);
           //recStr += Encoding.ASCII.GetString(recBytes, 0, bytes);
           //Console.WriteLine(recStr);            //clientSocket.Close();

           ////服务端:
           //var listener = new HttpListener();
           //listener.Prefixes.Add("http://*:8080/");
           //listener.Start();
           //var context = listener.GetContextAsync();
           //var wsContext = context.Result.AcceptWebSocketAsync("");
           //var ws = wsContext.Result.WebSocket;
           ////客户端:
           //var cln = new ClientWebSocket();
           //cln.ConnectAsync(new Uri("ws://127.0.0.1:8080"), CancellationToken.None);            //4.0方式
           string url = "ws://192.168.16.134:1234/";            try
           {
               ClientWebSocket cln = new ClientWebSocket();
               cln.ConnectAsync(new Uri(url), new CancellationToken()).Wait();                byte[] bytess = Encoding.Default.GetBytes("begin#70");
               cln.SendAsync(new ArraySegment<byte>(bytess), WebSocketMessageType.Text, true, new CancellationToken()).Wait();
               byte[] bytes2 = new byte[1000 * 500];
               var webSocketReceiveResult = cln.ReceiveAsync(new ArraySegment<byte>(bytes2), CancellationToken.None);
               webSocketReceiveResult.GetAwaiter().GetResult();
               Thread.Sleep(10000);                if (webSocketReceiveResult.IsCompleted)
               {
                   //Console.WriteLine(webSocketReceiveResult.Result.));
                   string xx = Encoding.GetEncoding("utf-8").GetString(bytes2, 0, webSocketReceiveResult.Result.Count);
                   Console.WriteLine(xx);
               }
               //string xx = Encoding.Default.GetString(bytes2);
               Console.WriteLine("11111111111");            }
           catch (Exception ex)
           {
               string ss = ex.ToString();
               Console.WriteLine(ss);
               //}
               Console.Read();
           }
       }
       //        服务端:
       //var listener = new HttpListener();
       // listener.Prefixes.Add("http://*:8080/");
       //listener.Start();
       //var context = await listener.GetContextAsync();
       //var wsContext = await context.AcceptWebSocketAsync(null);
       //var ws = wsContext.WebSocket;
       //        客户端:
       //var ws = new ClientWebSocket();
       //await ws.ConnectAsync(new Uri("ws://127.0.0.1:8080"), CancellationToken.None);        #region MyRegion
       //        1. 使用.NET4.5 自带的WebSocket
       //服务端:
       //var listener = new HttpListener();
       //        listener.Prefixes.Add("http://*:8080/");
       //listener.Start();
       //var context = await listener.GetContextAsync();
       //        var wsContext = await context.AcceptWebSocketAsync(null);
       //        var ws = wsContext.WebSocket;
       //        客户端:
       //var ws = new ClientWebSocket();
       //        await ws.ConnectAsync(new Uri("ws://127.0.0.1:8080"), CancellationToken.None);        //2. 使用 websocket-sharp dll提供的  WebSocket(支持.NET4.0)
       //客户端:        //_caiNiaoWs = new WebSocket(WsUrl);
       //        _caiNiaoWs.OnMessage += (sender, e) => OnMessage(e.Data);
       //        _caiNiaoWs.Connect();        // 3. 使用 Socket 类(支持.NET4.0)        
       #endregion
   }
}

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。