This project is read-only.

Networking Library Structure

This document explains how the structure of the library (is supposed) to be

The library is split into 6 main sections of which some have sub-sections:
  • Clients - All the classes (and interfaces) for network clients can be found in here.
    • Specialised - Clients that have been specially coded to provide wrapped but easily extensible functionality. In the initial release this includes MangerServerClient and GameServerClient.
    • TCP - Clients that specifically implement the TCP communication protocol. In the initial release this contained only TCPClient and ITCPClient (interface). These wrapped up socket handling and message handling conveniently but did not do any optimisation or flow/rate control.
    • UDP - Clients that specifically implement the UDP protocol. Empty in initial release.
  • Events - All the custom event args and delegate classes can be found here. Initial release had no sub-categories.
  • Exceptions - All the custom exceptions can be found here. Initial release contained only two custom exceptions: ClientConnectFailException and ServerStartException.
  • Messages - All the classes derived from MessageObject can be found here (NB: will be referred to as Message Types). These are used for sending messages easily over the network. NB: when adding new classes they must have the [Serializable] attribute applied
    • Specialised - All the message types used by Specialised Clients and Servers.
  • Servers - All the classes (and interfaces) for network servers can be found here.
    • Specialised - Servers that have been specifically coded to provide wrapped but easily extensible functionality. In the initial release this contained ManagerServer and GameServer.
    • TCP - Servers that specifically implement the TCP protocol. Initial release contained only TCPServer and ITCPServer.
    • UDP - Servers that specifically implement the UDP protocol. Initial release was empty.
  • Utilities - All other classes or the like that provide utility. Expecting these to always be static classes.

The following shows initial release classes and their inheritance/implementation of interfaces (namespace.type):

Clients
Events
  • ClientConnectDelegate
    • ClientConnectEventArgs
  • ClientDisconnectDelegate
    • ClientDisconnectEventArgs
  • ErrorDelegate
    • ErrorEventArgs
  • MaxConnectionsDelegate
    • MaxConnectionsEventArgs
  • MessageReceivedDelegate
    • MessageReceivedEventArgs

Exceptions
Messages
Servers
Utilities
NetworkingLibrary-Initial-Release-ClassDiagram.png

Last edited Dec 17, 2011 at 7:18 PM by EdwardNutting, version 23

Comments

No comments yet.