1. 程式人生 > 實用技巧 >測試Socket監聽請求----處理Socket

測試Socket監聽請求----處理Socket

測試Socket監聽請求----處理Socket,程式碼如下:

#region 測試Socket

        /// <summary>
        /// 測試Socket
        /// </summary>
        public static void TestSocket()
        {
            var threadStart = new Thread(new ThreadStart(StartSocket))
            {
                IsBackground = true
            };
            threadStart.Start();
            Console.WriteLine($
"WebSocket開始測試資料"); int test = 1; while (true) { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3344)); Console.WriteLine($
"scoket client 傳送資料:{test}"); socket.Send(Encoding.UTF8.GetBytes($"client{test}")); var buffer = new byte[1024]; var socketConnReceCount = socket.Receive(buffer); Console.WriteLine($"scoket client 接收資料:{Encoding.UTF8.GetString(buffer, 0, socketConnReceCount)}
"); test++; Thread.Sleep(2000); socket.Dispose(); } } public static async void StartSocket() { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.LingerState.Enabled = false; socket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3344)); socket.Listen(10); int test = 1; Console.WriteLine($"Socket服務端 啟動監聽"); while (true) { var socketConn = await socket.AcceptAsync(); var buffer = new byte[1024]; var socketConnReceCount = socketConn.Receive(buffer); Console.WriteLine($"scoket 服務端接收資料:{Encoding.UTF8.GetString(buffer, 0, socketConnReceCount)}"); Console.WriteLine($"scoket 服務端處理資料:{test}"); socketConn.Send(Encoding.UTF8.GetBytes($"服務端已處理{test}")); socketConn.Dispose(); } } #endregion

測試結果如下:

 public class Program
    {
        static void Main(string[] args)
        {
            #region  #region 測試Socket
            TestSocket(); 
            #endregion
            Console.Read();
        }
    }