測試Socket監聽請求----處理Socket
阿新 • • 發佈:2020-12-17
測試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(); } }