प्रोग्रामिंग मैं पहले BeginAccept()
और BeginRead()
, का उपयोग किया है, लेकिन दृश्य स्टूडियो 2012 के साथ मैं नए अतुल्यकालिक (async
, await
) का उपयोग करना चाहते हैं मेरी सॉकेट सर्वर कार्यक्रम में पेश करता है।सॉकेट के लिए नेट 4.5 Async फ़ीचर का उपयोग
मैं AcceptAsync
और ReceiveAsync
फ़ंक्शंस कैसे पूरा कर सकता हूं?
using System.Net;
using System.Net.Sockets;
namespace OfficialServer.Core.Server
{
public abstract class CoreServer
{
private const int ListenLength = 500;
private const int ReceiveTimeOut = 30000;
private const int SendTimeOut = 30000;
private readonly Socket _socket;
protected CoreServer(int port, string ip = "0.0.0.0")
{
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_socket.Bind(new IPEndPoint(IPAddress.Parse(ip), port));
_socket.Listen(ListenLength);
_socket.ReceiveTimeout = ReceiveTimeOut;
_socket.SendTimeout = SendTimeOut;
_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, true);
}
public void Start()
{
}
}
}
बहुत बहुत धन्यवाद, यह समझने में बहुत मदद करता है कि चीजें कैसे चल रही हैं। –
कोई समस्या नहीं है। आप सबसे अच्छे दृष्टिकोण के बारे में थोड़ा उलझन में लग रहे थे, इसलिए उम्मीद है कि यह चीजों को थोड़ा सा साफ़ कर देगा। – spender
लेकिन अब के लिए एक आखिरी सवाल: डी, क्या पुराने BeginReceive, और प्रदर्शन में नया ReceiveAsync का उपयोग करने के बीच कोई अंतर है? या यह थोड़े समान है? –