que he usado anteriormente BeginAccept()
y BeginRead()
, pero con Visual Studio 2012 Quiero hacer uso de la nueva asíncrono (async
, await
) presenta en mi programa de servidor de socket.El uso de .Net 4.5 asíncrono Función para un enchufe de programación
¿Cómo puedo completar las funciones AcceptAsync
y 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()
{
}
}
}
Muchas gracias, esto ayudó a entender mucho cómo van las cosas. –
No hay problema. Parecías un poco confundido acerca del mejor enfoque, así que espero que esto aclare un poco las cosas. – spender
Pero una última pregunta por ahora: D, ¿hay alguna diferencia entre usar el Old BeginReceive y el nuevo ReceiveAsync en el rendimiento? o es un poco lo mismo?! –