Здравствуйте уважаемые системные администраторы. Разблокируйте меня пожалуйста! Я робота своего создавал, никого не трогал. ПО пишу на C# с использованием коннектора QUIKSharp (это открытый исходный код на GitHub) надеюсь вы с ним знакомы. Если же нет вот ссылка можете ознакомиться. . Естественно что в процессе написания кода и его отладки приходится постоянно отключаться, подключаться и переподключаться к серверу. Всё шло хорошо, я исправно подключался, ничего не предвещало беды! Норадость полёта програмисткой мысли оказалась недолгой в этот день, так как, вдруг я получаю следующее исключение:
Вызвано исключение: "System.Net.Sockets.SocketException" в System.dll
Программа "[8876] RobotDemo.exe" завершилась с кодом -1 (0xffffffff).
Смысл этой ошибки следующий: СЕРВЕР НЕ ОТВЕЧАЕТ!
Подключение происходит по дефолтному хосту и порту. Вот два отрывка кода:
public const int DefaultPort = 34130;
/// <summary>
/// localhost
/// </summary>
public const string DefaultHost = "127.0.0.1";
/// <summary>
/// Quik interface in .NET constructor
/// </summary>
public Quik(int port = DefaultPort, IPersistentStorage storage = null, string host = DefaultHost)
{
Storage = storage == null ? new InMemoryStorage() : storage;
QuikService = QuikService.Create(port, host);
// poor man's DI
QuikService.Storage = Storage;
Events = QuikService.Events;
Debug = new DebugFunctions(port, host);
Service = new ServiceFunctions(port, host);
Class = new ClassFunctions(port, host);
OrderBook = new OrderBookFunctions(port, host);
Trading = new TradingFunctions(port, host);
StopOrders = new StopOrderFunctions(port, this, host);
Orders = new OrderFunctions(port, this, host);
Candles = new CandleFunctions(port, host);
QuikService.Candles = Candles;
QuikService.StopOrders = StopOrders;
QuikService.WorkingFolder = Service.GetWorkingFolder().Result;
}
private void ButtonConnect_Click(object sender, RoutedEventArgs e)
{
try
{
LogTextBox.AppendText($"Подключаемся к терминалу Quik {Environment.NewLine}");
_quik = new Quik(Quik.DefaultPort, new InMemoryStorage()); // инициализируем объект quik с использованием локального расположения терминала (по умолчанию)
}
catch
{
LogTextBox.AppendText($"Ошибка инициализации объекта {Environment.NewLine}");
}
Правда, должен признать, что сам терминал продолжает поддерживать подключение с сервером и исправно получает котировки.
На сколько я понял меня заблокировали из-за частых переподключений. Хотел бы иметь возможность продолжать работу далее если уважаемые системные администраторы будут не против. А ещё хотел бы получить рекомендацию по поводу того, как избежать данных проблем в будущем. Благодарю за понимание и оперативный ответ))).
Вызвано исключение: "System.Net.Sockets.SocketException" в System.dll
Программа "[8876] RobotDemo.exe" завершилась с кодом -1 (0xffffffff).
Смысл этой ошибки следующий: СЕРВЕР НЕ ОТВЕЧАЕТ!
Подключение происходит по дефолтному хосту и порту. Вот два отрывка кода:
public const int DefaultPort = 34130;
/// <summary>
/// localhost
/// </summary>
public const string DefaultHost = "127.0.0.1";
/// <summary>
/// Quik interface in .NET constructor
/// </summary>
public Quik(int port = DefaultPort, IPersistentStorage storage = null, string host = DefaultHost)
{
Storage = storage == null ? new InMemoryStorage() : storage;
QuikService = QuikService.Create(port, host);
// poor man's DI
QuikService.Storage = Storage;
Events = QuikService.Events;
Debug = new DebugFunctions(port, host);
Service = new ServiceFunctions(port, host);
Class = new ClassFunctions(port, host);
OrderBook = new OrderBookFunctions(port, host);
Trading = new TradingFunctions(port, host);
StopOrders = new StopOrderFunctions(port, this, host);
Orders = new OrderFunctions(port, this, host);
Candles = new CandleFunctions(port, host);
QuikService.Candles = Candles;
QuikService.StopOrders = StopOrders;
QuikService.WorkingFolder = Service.GetWorkingFolder().Result;
}
private void ButtonConnect_Click(object sender, RoutedEventArgs e)
{
try
{
LogTextBox.AppendText($"Подключаемся к терминалу Quik {Environment.NewLine}");
_quik = new Quik(Quik.DefaultPort, new InMemoryStorage()); // инициализируем объект quik с использованием локального расположения терминала (по умолчанию)
}
catch
{
LogTextBox.AppendText($"Ошибка инициализации объекта {Environment.NewLine}");
}
Правда, должен признать, что сам терминал продолжает поддерживать подключение с сервером и исправно получает котировки.
На сколько я понял меня заблокировали из-за частых переподключений. Хотел бы иметь возможность продолжать работу далее если уважаемые системные администраторы будут не против. А ещё хотел бы получить рекомендацию по поводу того, как избежать данных проблем в будущем. Благодарю за понимание и оперативный ответ))).