1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-27 02:43:54 +02:00

Добавлен CloseOutput в TCPC

This commit is contained in:
Anton Titovets 2024-12-15 21:46:52 +03:00
parent 1efb59522f
commit 0ecc9df7b3
8 changed files with 17 additions and 2 deletions

Binary file not shown.

View File

@ -1,5 +1,5 @@
use std::io::{Read, Write};
use std::net::TcpStream;
use std::net::{Shutdown, TcpStream};
use std::time::{Duration, Instant};
/// Отправляет данные
@ -70,4 +70,9 @@ pub fn receive(
pub fn disconnect(add_in: &mut crate::component::AddIn) -> bool {
add_in.connection = None;
true
}
/// Закрытие потока записи
pub fn close_output(connection: &mut TcpStream) -> bool {
connection.shutdown(Shutdown::Write).is_ok()
}

View File

@ -12,7 +12,8 @@ pub const METHODS: &[&[u16]] = &[
name!("Connect"), // 0
name!("Disconnect"), // 1
name!("Read"), // 2
name!("Send"), // 3
name!("Send"), // 3
name!("CloseOutput") // 4
];
// Число параметров функций компоненты
@ -22,6 +23,7 @@ pub fn get_params_amount(num: usize) -> usize {
1 => 0,
2 => 3,
3 => 2,
4 => 0,
_ => 0,
}
}
@ -62,6 +64,13 @@ pub fn cal_func(obj: &mut AddIn, num: usize, params: &mut [Variant]) -> Box<dyn
Box::new(false) // Если соединения нет, возвращаем false
}
},
4 =>{
if let Some(ref mut connection) = obj.connection {
Box::new(methods::close_output(connection))
} else {
Box::new(false)
}
}
_ => Box::new(false), // Неверный номер команды
}

Binary file not shown.

Binary file not shown.

View File

@ -212,6 +212,7 @@
Соединение = ОткрытьСоединение(Адрес);
Результат = ОтправитьДвоичныеДанные(Соединение, Данные);
Соединение.CloseOutput();
Если Результат Тогда