Socket Asincrono
Publicado por Cesar Alvarado (1 intervención) el 14/10/2016 20:29:07
Hay forma de crear un buffer dinámico, es decir no fijar un tamaño a un buffer fijo.Actualmente realizo lo siguiente:
Este metodo en el BeginRead ya fija el tamaño de 1024, y lo que ocasiona es que parta el mensaje.Yo puedo definir un tamaño mayor pero no es lo que deseo.
La clase cliente context:
Favor apoyenme con esta duda
Este metodo en el BeginRead ya fija el tamaño de 1024, y lo que ocasiona es que parta el mensaje.Yo puedo definir un tamaño mayor pero no es lo que deseo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void OnClientAccepted(IAsyncResult ar)
{
TcpListener listener = ar.AsyncState as TcpListener;
if (listener == null)
return;
try
{
ClientContext context = new ClientContext();
context.Client = listener.EndAcceptTcpClient(ar);
context.Stream = context.Client.GetStream();
context.Stream.BeginRead(context.Buffer, 0, context.Buffer.Length, OnClientRead, context);
}
catch (Exception ex)
{
string errorMessage = string.Format("ExceptionMessage:\n{0}\n\nExceptionTrace:\n{1}", ex.Message, ex.StackTrace);
_logger.LogError(errorMessage, MethodBase.GetCurrentMethod().Name);
}
finally
{
listener.BeginAcceptTcpClient(OnClientAccepted, listener);
}
}
La clase cliente context:
1
2
3
4
5
6
7
class ClientContext
{
public TcpClient Client;
public Stream Stream;
public byte[] Buffer = new byte[1024];
public MemoryStream Message = new MemoryStream();
}
Favor apoyenme con esta duda
Valora esta pregunta
0