Tôi được giao nhiệm vụ thiết kế một máy chủ TCP/IP khá đơn giản, phải chấp nhận các kết nối từ nhiều máy khách. Nó cần phải được viết bằng C#, và tôi đang sử dụng .NET 4.5. Điều đó nói rằng, tôi không chắc chắn là "trạng thái hiện đại" hiện tại cho khả năng mở rộng máy chủ/máy khách TCP/IP trong .NET 4.5.Viết một máy chủ TCP/IP có khả năng mở rộng cao trong C# 5 với mẫu async/await?
Tôi đã xem bài đăng này: How to write a scalable Tcp/Ip based server. Nhưng điều đó liên quan đến .NET 2.0 và 3.5 và không đề cập đến mẫu async/await.
Tôi có khả năng viết máy chủ theo "cách cũ" ... nhưng tôi muốn biết "cách mới" là gì.
- Cách tốt nhất để sử dụng các phương pháp Async mới trên Socket, TcpClient hoặc TcpListener để tạo máy chủ có thể mở rộng trong C# là gì?
- Thực hiện các phương pháp Async mới có tận dụng các cổng hoàn thành I/O không?
- Bạn có đang sử dụng Trình nghe Socket riêng của mình hiệu quả hơn hoặc các lớp TcpListener/TcpClient có khá tốt không?
EDIT: Các câu hỏi bổ sung.
không có C# 4.5 :) đó là .net 4.5, C# 5 –
Sigh .. thật ngu ngốc. Cảm ơn vì đã sửa tôi. –
Có thể xem http://signalr.net/ – Richard