引入shell模块

This commit is contained in:
2025-01-19 23:04:11 +08:00
parent 91b2892395
commit 232547b79e
6 changed files with 135 additions and 16 deletions

View File

@@ -30,7 +30,7 @@ impl OwnedWriteHalfAbstraction for tcp::OwnedWriteHalf {}
impl OwnedWriteHalfAbstraction for unix::OwnedWriteHalf {}
#[async_trait]
pub trait AcceptSocket {
pub trait AcceptSocket: Send + Sync {
async fn accept(
&self,
) -> io::Result<(

View File

@@ -29,7 +29,7 @@ pub type ClientList = Arc<Mutex<HashMap<ClientID, Arc<Client::Client>>>>;
/// 服务器抽象
pub struct Server {
listener: Box<dyn AcceptSocket>,
listener: Arc<dyn AcceptSocket>,
close_sender: CloseSender,
client_list: ClientList,
next_id: AtomicU64,
@@ -38,7 +38,7 @@ pub struct Server {
}
impl Server {
fn new(listener: Box<dyn AcceptSocket>, cert: ServerCert, event: Arc<dyn ServerEvent>) -> Self {
fn new(listener: Arc<dyn AcceptSocket>, cert: ServerCert, event: Arc<dyn ServerEvent>) -> Self {
Server {
listener,
close_sender: CloseSender::new(),
@@ -55,7 +55,7 @@ impl Server {
event: Arc<dyn ServerEvent>,
) -> io::Result<Self> {
let listener = TcpListener::bind(addr).await?;
Ok(Server::new(Box::new(listener), cert, event))
Ok(Server::new(Arc::new(listener), cert, event))
}
pub async fn new_unix<P>(
@@ -67,7 +67,7 @@ impl Server {
P: AsRef<Path>,
{
let unix = UnixListener::bind(path)?;
Ok(Server::new(Box::new(unix), cert, event))
Ok(Server::new(Arc::new(unix), cert, event))
}
/// 广播关闭消息