比较独立的管理连接的代码外移
Stone authored at 2013-06-24 17:04:04
7.93 KiB
X
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
  <Class Name="NewLife.Net.Sockets.SocketClient">
    <Position X="16.5" Y="7.25" Width="1.75" />
    <Compartments>
      <Compartment Name="Fields" Collapsed="true" />
    </Compartments>
    <TypeIdentifier>
      <HashCode>AAAAACABAAAQABAEAAAAAIAAAIAAAAAQABABAAAAAAQ=</HashCode>
      <FileName>Sockets\SocketClient.cs</FileName>
    </TypeIdentifier>
    <Lollipop Position="0.2" />
  </Class>
  <Class Name="NewLife.Net.Sockets.SocketServer">
    <Position X="10.5" Y="7.25" Width="2" />
    <Compartments>
      <Compartment Name="Fields" Collapsed="true" />
    </Compartments>
    <TypeIdentifier>
      <HashCode>AAAAAAAAACCAAAAAEAAQAAAAAAAAAAAgIEAAAgAAAAA=</HashCode>
      <FileName>Sockets\SocketServer.cs</FileName>
    </TypeIdentifier>
    <Lollipop Position="0.2" />
  </Class>
  <Class Name="NewLife.Net.Tcp.TcpServer">
    <Position X="9.25" Y="11.25" Width="1.75" />
    <Compartments>
      <Compartment Name="Fields" Collapsed="true" />
    </Compartments>
    <TypeIdentifier>
      <HashCode>AABCQCEAACAAABAAEDAgAAAgAAAIAAAAMCAgoAAAAAA=</HashCode>
      <FileName>Tcp\TcpServer.cs</FileName>
    </TypeIdentifier>
  </Class>
  <Class Name="NewLife.Net.Udp.UdpServer">
    <Position X="11.75" Y="11.25" Width="2" />
    <Compartments>
      <Compartment Name="Fields" Collapsed="true" />
    </Compartments>
    <TypeIdentifier>
      <HashCode>AAAAACABAAAQABAAEEAAAAAAAIAAAAAQABAhAAAAAAA=</HashCode>
      <FileName>Udp\UdpServer.cs</FileName>
    </TypeIdentifier>
    <Lollipop Position="0.2" />
  </Class>
  <Class Name="NewLife.Net.Sockets.SocketBase">
    <Position X="13.75" Y="4.75" Width="2" />
    <Compartments>
      <Compartment Name="Fields" Collapsed="true" />
      <Compartment Name="Properties" Collapsed="true" />
      <Compartment Name="Methods" Collapsed="true" />
      <Compartment Name="Events" Collapsed="true" />
    </Compartments>
    <TypeIdentifier>
      <HashCode>AEAChCUAAnCAKQIECgAgESAQLSCAAQAKAQGgiBCACgE=</HashCode>
      <FileName>Sockets\SocketBase.cs</FileName>
    </TypeIdentifier>
    <Lollipop Position="0.2" />
  </Class>
  <Class Name="NewLife.Net.Tcp.TcpClientX">
    <Position X="14.5" Y="12" Width="3" />
    <Compartments>
      <Compartment Name="Fields" Collapsed="true" />
    </Compartments>
    <TypeIdentifier>
      <HashCode>ggAAACIBACAQABBAAEAoAAAAABAJAAAgADAjAJAEAAA=</HashCode>
      <FileName>Tcp\TcpClientX.cs</FileName>
    </TypeIdentifier>
    <Lollipop Position="0.2" />
  </Class>
  <Class Name="NewLife.Net.Udp.UdpClientX">
    <Position X="18.25" Y="12" Width="1.75" />
    <TypeIdentifier>
      <HashCode>AAAAAAAAAACAABAAAEAAAAAAAAAAAAAgABAgAAAAAAA=</HashCode>
      <FileName>Udp\UdpClientX.cs</FileName>
    </TypeIdentifier>
    <Lollipop Position="0.2" />
  </Class>
  <Class Name="NewLife.Net.Sockets.NetServer">
    <Position X="10" Y="0.75" Width="2" />
    <Compartments>
      <Compartment Name="Fields" Collapsed="true" />
      <Compartment Name="Properties" Collapsed="true" />
      <Compartment Name="Methods" Collapsed="true" />
      <Compartment Name="Events" Collapsed="true" />
    </Compartments>
    <TypeIdentifier>
      <HashCode>AAAKQIABACCAABAEECggIEQICAAIABAiYFAgAwAEiBE=</HashCode>
      <FileName>Sockets\NetServer.cs</FileName>
    </TypeIdentifier>
    <Lollipop Position="0.2" />
  </Class>
  <Class Name="NewLife.Net.Application.ChargenServer" Collapsed="true">
    <Position X="3.5" Y="3.25" Width="1.5" />
    <TypeIdentifier>
      <HashCode>AAAAAAAAAACAAAAIAEAAAABAAAEAAAAAAAEAAQAAgAA=</HashCode>
      <FileName>Application\ChargenServer.cs</FileName>
    </TypeIdentifier>
  </Class>
  <Class Name="NewLife.Net.Application.DaytimeServer" Collapsed="true">
    <Position X="5.75" Y="3.25" Width="1.5" />
    <TypeIdentifier>
      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA=</HashCode>
      <FileName>Application\DaytimeServer.cs</FileName>
    </TypeIdentifier>
  </Class>
  <Class Name="NewLife.Net.Application.DiscardServer" Collapsed="true">
    <Position X="8" Y="3.25" Width="1.5" />
    <TypeIdentifier>
      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAA=</HashCode>
      <FileName>Application\DiscardServer.cs</FileName>
    </TypeIdentifier>
  </Class>
  <Class Name="NewLife.Net.Application.EchoServer" Collapsed="true">
    <Position X="10.25" Y="3.25" Width="1.5" />
    <TypeIdentifier>
      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAA=</HashCode>
      <FileName>Application\EchoServer.cs</FileName>
    </TypeIdentifier>
  </Class>
  <Class Name="NewLife.Net.Application.StreamServer" Collapsed="true">
    <Position X="12.5" Y="3.25" Width="1.5" />
    <TypeIdentifier>
      <HashCode>AAAIAAAAAAAAQAAAAAAAAAAAAAAAgAAAAAAAAQAAAAA=</HashCode>
      <FileName>Application\StreamServer.cs</FileName>
    </TypeIdentifier>
  </Class>
  <Class Name="NewLife.Net.Application.TimeServer" Collapsed="true">
    <Position X="14.75" Y="3.25" Width="1.5" />
    <TypeIdentifier>
      <HashCode>AAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAgAA=</HashCode>
      <FileName>Application\TimeServer.cs</FileName>
    </TypeIdentifier>
  </Class>
  <Class Name="NewLife.Net.IO.FileServer" Collapsed="true">
    <Position X="17" Y="3.25" Width="1.5" />
    <TypeIdentifier>
      <HashCode>gAAIAAAABAAAAAAAAAAAEAAEAAAAAAAAAAAAAAAAAAA=</HashCode>
      <FileName>IO\FileServer.cs</FileName>
    </TypeIdentifier>
  </Class>
  <Class Name="System.Net.Sockets.Socket" Collapsed="true">
    <Position X="21" Y="0.75" Width="1.5" />
    <TypeIdentifier />
    <Lollipop Position="0.2" />
  </Class>
  <Interface Name="NewLife.Net.Proxy.IProxySession">
    <Position X="10" Y="4.75" Width="2" />
    <TypeIdentifier>
      <HashCode>AAAAAAAAKAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
      <FileName>Proxy\IProxySession.cs</FileName>
    </TypeIdentifier>
    <ShowAsAssociation>
      <Property Name="Proxy" />
      <Property Name="Remote" />
    </ShowAsAssociation>
  </Interface>
  <Interface Name="NewLife.Net.Proxy.IProxy">
    <Position X="13.25" Y="8.25" Width="1.5" />
    <TypeIdentifier>
      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
      <FileName>Proxy\IProxy.cs</FileName>
    </TypeIdentifier>
  </Interface>
  <Interface Name="NewLife.Net.Sockets.ISocketClient">
    <Position X="5.25" Y="9.25" Width="1.75" />
    <TypeIdentifier>
      <HashCode>AAAAAAABAAAAABAAAAAAAIAAAIAAAAAQABAAAAAAAAQ=</HashCode>
      <FileName>Sockets\ISocketClient.cs</FileName>
    </TypeIdentifier>
  </Interface>
  <Interface Name="NewLife.Net.Sockets.ISocketServer">
    <Position X="3" Y="9.25" Width="1.5" />
    <TypeIdentifier>
      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAgAAAAA=</HashCode>
      <FileName>Sockets\ISocketServer.cs</FileName>
    </TypeIdentifier>
  </Interface>
  <Interface Name="NewLife.Net.Sockets.ISocketSession">
    <Position X="7" Y="5" Width="1.75" />
    <TypeIdentifier>
      <HashCode>AAAAAAABAAAAgAAAAEAAAAAAAIAICAAQABAAABAAAAA=</HashCode>
      <FileName>Sockets\ISocketSession.cs</FileName>
    </TypeIdentifier>
    <ShowAsAssociation>
      <Property Name="Host" />
    </ShowAsAssociation>
  </Interface>
  <Interface Name="NewLife.Net.Sockets.ISocket">
    <Position X="4" Y="4.75" Width="2" />
    <TypeIdentifier>
      <HashCode>AAACgAAAAAAAIQIEAAAAAAAACAAAAQACAAAgAACAAAE=</HashCode>
      <FileName>Sockets\ISocket.cs</FileName>
    </TypeIdentifier>
    <ShowAsAssociation>
      <Property Name="Statistics" />
    </ShowAsAssociation>
  </Interface>
  <Interface Name="NewLife.Net.Common.IStatistics">
    <Position X="1" Y="5" Width="1.75" />
    <TypeIdentifier>
      <HashCode>AAAAEAAQAAAAAQAAIAAACAAAAAACQAAAAAASAAgAAAA=</HashCode>
      <FileName>Common\IStatistics.cs</FileName>
    </TypeIdentifier>
  </Interface>
  <Font Name="微软雅黑" Size="9" />
</ClassDiagram>