Add socket ReceiveBufferSize settings to public property

This commit is contained in:
Denis Dyner 2020-01-24 13:08:40 +03:00
parent 2428cc1e8b
commit 0f260a753c
2 changed files with 34 additions and 13 deletions

View file

@ -6,6 +6,9 @@ using System;
namespace AsterNET.IO
{
/// <summary>
/// Socket connection to asterisk.
/// </summary>
public class SocketConnection
{
private TcpClient tcpClient;
@ -23,21 +26,29 @@ namespace AsterNET.IO
/// <param name="port">client port</param>
/// <param name="encoding">encoding</param>
public SocketConnection(string host, int port, Encoding encoding)
:this(new TcpClient(host, port), encoding)
{
initial = true;
this.encoding = encoding;
this.tcpClient = new TcpClient(host, port);
this.networkStream = this.tcpClient.GetStream();
this.reader = new StreamReader(this.networkStream, encoding);
this.writer = new BinaryWriter(this.networkStream, encoding);
}
/// <summary>
/// Consructor
/// </summary>
/// <param name="host">client host</param>
/// <param name="port">client port</param>
/// <param name="encoding">encoding</param>
/// <param name="receiveBufferSize">size of the receive buffer.</param>
public SocketConnection(string host, int port,int receiveBufferSize, Encoding encoding)
: this (new TcpClient(host, port) {ReceiveBufferSize = receiveBufferSize }, encoding)
{
}
#endregion
#region Constructor - SocketConnection(socket)
/// <summary>
/// Constructor
/// </summary>
/// <param name="socket">TCP client from Listener</param>
/// <param name="tcpClient">TCP client from Listener</param>
/// <param name="encoding">encoding</param>
internal SocketConnection(TcpClient tcpClient, Encoding encoding)
{

View file

@ -653,14 +653,14 @@ namespace AsterNET.Manager
/// <param name="username">the username to use for login</param>
/// <param name="password">the password to use for login</param>
/// <param name="socketEncoding">text encoding to asterisk input/output stream</param>
public ManagerConnection(string hostname, int port, string username, string password, Encoding encoding)
public ManagerConnection(string hostname, int port, string username, string password, Encoding socketEncoding)
: this()
{
this.hostname = hostname;
this.port = port;
this.username = username;
this.password = password;
this.socketEncoding = encoding;
this.socketEncoding = socketEncoding;
}
#endregion
@ -855,7 +855,8 @@ namespace AsterNET.Manager
}
#endregion
#region SocketEncoding
#region Socket Settings
/// <summary>
/// Socket Encoding - default ASCII
/// </summary>
@ -864,6 +865,12 @@ namespace AsterNET.Manager
get { return socketEncoding; }
set { socketEncoding = value; }
}
/// <summary>
/// Socket Receive Buffer Size
/// </summary>
public int SocketReceiveBufferSize { get; set;}
#endregion
#region Version
@ -1075,6 +1082,9 @@ namespace AsterNET.Manager
#endif
try
{
if (SocketReceiveBufferSize>0)
mrSocket = new SocketConnection(hostname, port, SocketReceiveBufferSize, socketEncoding);
else
mrSocket = new SocketConnection(hostname, port, socketEncoding);
result = mrSocket.IsConnected;
}