sig
  module IPAddressBase :
    sig
      type t
      val destroy : OcsfmlNetwork.IPAddressBase.t -> unit
      val default : unit -> OcsfmlNetwork.IPAddressBase.t
      val copy :
        OcsfmlNetwork.IPAddressBase.t -> OcsfmlNetwork.IPAddressBase.t
      val affect :
        OcsfmlNetwork.IPAddressBase.t ->
        OcsfmlNetwork.IPAddressBase.t -> OcsfmlNetwork.IPAddressBase.t
      val from_string : string -> OcsfmlNetwork.IPAddressBase.t
      val from_bytes :
        int -> int -> int -> int -> OcsfmlNetwork.IPAddressBase.t
      val from_int : int -> OcsfmlNetwork.IPAddressBase.t
      val to_string : OcsfmlNetwork.IPAddressBase.t -> string
      val to_integer : OcsfmlNetwork.IPAddressBase.t -> int
    end
  class ip_address :
    [ `Bytes of int * int * int * int
    | `Copy of < rep__sf_IpAddress : OcsfmlNetwork.IPAddressBase.t; .. >
    | `Int of int
    | `None
    | `String of string ] ->
    object ('a)
      val t_ip_address : OcsfmlNetwork.IPAddressBase.t
      method affect : '-> unit
      method destroy : unit
      method rep__sf_IpAddress : OcsfmlNetwork.IPAddressBase.t
      method to_integer : int
      method to_string : string
    end
  module IPAddress :
    sig
      type t = OcsfmlNetwork.IPAddressBase.t
      val get_local_address : unit -> OcsfmlNetwork.ip_address
      val get_public_address :
        ?timeout:OcsfmlSystem.Time.t -> unit -> OcsfmlNetwork.ip_address
      val none : OcsfmlNetwork.ip_address
      val localhost : OcsfmlNetwork.ip_address
      val equal :
        OcsfmlNetwork.ip_address -> OcsfmlNetwork.ip_address -> bool
    end
  module FTP :
    sig
      type transfer_mode = Binary | Ascii | Ebcdic
      module Status :
        sig
          type t = private int
          val restartMarkerReply : OcsfmlNetwork.FTP.Status.t
          val serviceReadySoon : OcsfmlNetwork.FTP.Status.t
          val dataConnectionAlreadyOpened : OcsfmlNetwork.FTP.Status.t
          val openingDataConnection : OcsfmlNetwork.FTP.Status.t
          val ok : OcsfmlNetwork.FTP.Status.t
          val pointlessCommand : OcsfmlNetwork.FTP.Status.t
          val systemStatus : OcsfmlNetwork.FTP.Status.t
          val directoryStatus : OcsfmlNetwork.FTP.Status.t
          val fileStatus : OcsfmlNetwork.FTP.Status.t
          val helpMessage : OcsfmlNetwork.FTP.Status.t
          val systemType : OcsfmlNetwork.FTP.Status.t
          val serviceReady : OcsfmlNetwork.FTP.Status.t
          val closingConnection : OcsfmlNetwork.FTP.Status.t
          val dataConnectionOpened : OcsfmlNetwork.FTP.Status.t
          val closingDataConnection : OcsfmlNetwork.FTP.Status.t
          val enteringPassiveMode : OcsfmlNetwork.FTP.Status.t
          val loggedIn : OcsfmlNetwork.FTP.Status.t
          val fileActionOk : OcsfmlNetwork.FTP.Status.t
          val directoryOk : OcsfmlNetwork.FTP.Status.t
          val needPassword : OcsfmlNetwork.FTP.Status.t
          val needAccountToLogIn : OcsfmlNetwork.FTP.Status.t
          val needInformation : OcsfmlNetwork.FTP.Status.t
          val serviceUnavailable : OcsfmlNetwork.FTP.Status.t
          val dataConnectionUnavailable : OcsfmlNetwork.FTP.Status.t
          val transferAborted : OcsfmlNetwork.FTP.Status.t
          val fileActionAborted : OcsfmlNetwork.FTP.Status.t
          val localError : OcsfmlNetwork.FTP.Status.t
          val insufficientStorageSpace : OcsfmlNetwork.FTP.Status.t
          val commandUnknown : OcsfmlNetwork.FTP.Status.t
          val parametersUnknown : OcsfmlNetwork.FTP.Status.t
          val commandNotImplemented : OcsfmlNetwork.FTP.Status.t
          val badCommandSequence : OcsfmlNetwork.FTP.Status.t
          val parameterNotImplemented : OcsfmlNetwork.FTP.Status.t
          val notLoggedIn : OcsfmlNetwork.FTP.Status.t
          val needAccountToStore : OcsfmlNetwork.FTP.Status.t
          val fileUnavailable : OcsfmlNetwork.FTP.Status.t
          val pageTypeUnknown : OcsfmlNetwork.FTP.Status.t
          val notEnoughMemory : OcsfmlNetwork.FTP.Status.t
          val filenameNotAllowed : OcsfmlNetwork.FTP.Status.t
          val invalidResponse : OcsfmlNetwork.FTP.Status.t
          val connectionFailed : OcsfmlNetwork.FTP.Status.t
          val connectionClosed : OcsfmlNetwork.FTP.Status.t
          val invalidFile : OcsfmlNetwork.FTP.Status.t
        end
      module Response :
        sig
          type t
          val destroy : OcsfmlNetwork.FTP.Response.t -> unit
          val default :
            ?code:OcsfmlNetwork.FTP.Status.t ->
            ?msg:string -> unit -> OcsfmlNetwork.FTP.Response.t
          val get_status :
            OcsfmlNetwork.FTP.Response.t -> OcsfmlNetwork.FTP.Status.t
          val get_message : OcsfmlNetwork.FTP.Response.t -> string
        end
      class response :
        OcsfmlNetwork.FTP.Response.t ->
        object
          val t_response : OcsfmlNetwork.FTP.Response.t
          method destroy : unit
          method get_message : string
          method get_status : OcsfmlNetwork.FTP.Status.t
          method is_ok : bool
          method rep__sf_Ftp_Response : OcsfmlNetwork.FTP.Response.t
        end
      module DirectoryResponse :
        sig
          type t
          val destroy : OcsfmlNetwork.FTP.DirectoryResponse.t -> unit
          val to_response :
            OcsfmlNetwork.FTP.DirectoryResponse.t ->
            OcsfmlNetwork.FTP.Response.t
          val default :
            OcsfmlNetwork.FTP.Response.t ->
            OcsfmlNetwork.FTP.DirectoryResponse.t
          val get_directory : OcsfmlNetwork.FTP.DirectoryResponse.t -> string
        end
      class directory_response :
        OcsfmlNetwork.FTP.DirectoryResponse.t ->
        object
          val t_directory_response : OcsfmlNetwork.FTP.DirectoryResponse.t
          val t_response : Response.t
          method destroy : unit
          method get_directory : string
          method get_message : string
          method get_status : Status.t
          method is_ok : bool
          method rep__sf_Ftp_DirectoryResponse :
            OcsfmlNetwork.FTP.DirectoryResponse.t
          method rep__sf_Ftp_Response : Response.t
        end
      module ListingResponse :
        sig
          type t
          val destroy : OcsfmlNetwork.FTP.ListingResponse.t -> unit
          val to_response :
            OcsfmlNetwork.FTP.ListingResponse.t ->
            OcsfmlNetwork.FTP.Response.t
          val default :
            OcsfmlNetwork.FTP.response ->
            char list -> OcsfmlNetwork.FTP.ListingResponse.t
          val get_listing :
            OcsfmlNetwork.FTP.ListingResponse.t -> string list
        end
      class listing_response :
        OcsfmlNetwork.FTP.ListingResponse.t ->
        object
          val t_listing_response : OcsfmlNetwork.FTP.ListingResponse.t
          val t_response : Response.t
          method destroy : unit
          method get_listing : string list
          method get_message : string
          method get_status : Status.t
          method is_ok : bool
          method rep__sf_Ftp_ListingResponse :
            OcsfmlNetwork.FTP.ListingResponse.t
          method rep__sf_Ftp_Response : Response.t
        end
      module Ftp :
        sig
          type t
          val destroy : OcsfmlNetwork.FTP.Ftp.t -> unit
          val default : unit -> OcsfmlNetwork.FTP.Ftp.t
          val connect :
            OcsfmlNetwork.FTP.Ftp.t ->
            ?port:int ->
            ?timeout:OcsfmlSystem.Time.t ->
            OcsfmlNetwork.IPAddress.t -> OcsfmlNetwork.FTP.Response.t
          val disconnect :
            OcsfmlNetwork.FTP.Ftp.t -> OcsfmlNetwork.FTP.Response.t
          val login :
            OcsfmlNetwork.FTP.Ftp.t ->
            ?log:string * string -> unit -> OcsfmlNetwork.FTP.Response.t
          val keep_alive :
            OcsfmlNetwork.FTP.Ftp.t -> OcsfmlNetwork.FTP.Response.t
          val get_working_directory :
            OcsfmlNetwork.FTP.Ftp.t -> OcsfmlNetwork.FTP.DirectoryResponse.t
          val get_directory_listing :
            OcsfmlNetwork.FTP.Ftp.t ->
            ?dir:string -> unit -> OcsfmlNetwork.FTP.ListingResponse.t
          val change_directory :
            OcsfmlNetwork.FTP.Ftp.t -> string -> OcsfmlNetwork.FTP.Response.t
          val parent_directory :
            OcsfmlNetwork.FTP.Ftp.t -> OcsfmlNetwork.FTP.Response.t
          val create_directory :
            OcsfmlNetwork.FTP.Ftp.t -> string -> OcsfmlNetwork.FTP.Response.t
          val delete_directory :
            OcsfmlNetwork.FTP.Ftp.t -> string -> OcsfmlNetwork.FTP.Response.t
          val rename_file :
            OcsfmlNetwork.FTP.Ftp.t ->
            string -> string -> OcsfmlNetwork.FTP.Response.t
          val delete_file :
            OcsfmlNetwork.FTP.Ftp.t -> string -> OcsfmlNetwork.FTP.Response.t
          val download :
            OcsfmlNetwork.FTP.Ftp.t ->
            ?mode:OcsfmlNetwork.FTP.transfer_mode ->
            string -> string -> OcsfmlNetwork.FTP.Response.t
          val upload :
            OcsfmlNetwork.FTP.Ftp.t ->
            ?mode:OcsfmlNetwork.FTP.transfer_mode ->
            string -> string -> OcsfmlNetwork.FTP.Response.t
        end
      class ftp :
        OcsfmlNetwork.FTP.Ftp.t ->
        object
          val t_ftp : OcsfmlNetwork.FTP.Ftp.t
          method change_directory : string -> OcsfmlNetwork.FTP.response
          method connect :
            ?port:int ->
            ?timeout:OcsfmlSystem.Time.t ->
            OcsfmlNetwork.ip_address -> OcsfmlNetwork.FTP.response
          method create_directory : string -> OcsfmlNetwork.FTP.response
          method delete_directory : string -> OcsfmlNetwork.FTP.response
          method delete_file : string -> OcsfmlNetwork.FTP.response
          method destroy : unit
          method disconnect : OcsfmlNetwork.FTP.response
          method download :
            ?mode:OcsfmlNetwork.FTP.transfer_mode ->
            string -> string -> OcsfmlNetwork.FTP.response
          method get_directory_listing :
            ?dir:string -> unit -> OcsfmlNetwork.FTP.listing_response
          method get_working_directory : OcsfmlNetwork.FTP.directory_response
          method keep_alive : OcsfmlNetwork.FTP.response
          method login :
            ?log:string * string -> unit -> OcsfmlNetwork.FTP.response
          method parent_directory : OcsfmlNetwork.FTP.response
          method rename_file : string -> string -> OcsfmlNetwork.FTP.response
          method rep__sf_Ftp : OcsfmlNetwork.FTP.Ftp.t
          method upload :
            ?mode:OcsfmlNetwork.FTP.transfer_mode ->
            string -> string -> OcsfmlNetwork.FTP.response
        end
    end
  module HTTP :
    sig
      type request_method = Get | Post | Head
      module Status :
        sig
          type t = private int
          val ok : OcsfmlNetwork.HTTP.Status.t
          val created : OcsfmlNetwork.HTTP.Status.t
          val accepted : OcsfmlNetwork.HTTP.Status.t
          val noContent : OcsfmlNetwork.HTTP.Status.t
          val resetContent : OcsfmlNetwork.HTTP.Status.t
          val partialContent : OcsfmlNetwork.HTTP.Status.t
          val multipleChoices : OcsfmlNetwork.HTTP.Status.t
          val movedPermanently : OcsfmlNetwork.HTTP.Status.t
          val movedTemporarily : OcsfmlNetwork.HTTP.Status.t
          val notModified : OcsfmlNetwork.HTTP.Status.t
          val badRequest : OcsfmlNetwork.HTTP.Status.t
          val unauthorized : OcsfmlNetwork.HTTP.Status.t
          val forbidden : OcsfmlNetwork.HTTP.Status.t
          val notFound : OcsfmlNetwork.HTTP.Status.t
          val rangeNotSatisfiable : OcsfmlNetwork.HTTP.Status.t
          val internalServerError : OcsfmlNetwork.HTTP.Status.t
          val notImplemented : OcsfmlNetwork.HTTP.Status.t
          val badGateway : OcsfmlNetwork.HTTP.Status.t
          val serviceNotAvailable : OcsfmlNetwork.HTTP.Status.t
          val gatewayTimeout : OcsfmlNetwork.HTTP.Status.t
          val versionNotSupported : OcsfmlNetwork.HTTP.Status.t
          val invalidResponse : OcsfmlNetwork.HTTP.Status.t
          val connectionFailed : OcsfmlNetwork.HTTP.Status.t
        end
      module Request :
        sig
          type t
          val destroy : OcsfmlNetwork.HTTP.Request.t -> unit
          val default :
            ?uri:string ->
            ?meth:OcsfmlNetwork.HTTP.request_method ->
            ?body:string -> unit -> OcsfmlNetwork.HTTP.Request.t
          val set_field :
            OcsfmlNetwork.HTTP.Request.t -> string -> string -> unit
          val set_method :
            OcsfmlNetwork.HTTP.Request.t ->
            OcsfmlNetwork.HTTP.request_method -> unit
          val set_uri : OcsfmlNetwork.HTTP.Request.t -> string -> unit
          val set_http_version :
            OcsfmlNetwork.HTTP.Request.t -> int -> int -> unit
          val set_body : OcsfmlNetwork.HTTP.Request.t -> string -> unit
        end
      class request :
        ?uri:string ->
        ?meth:OcsfmlNetwork.HTTP.request_method ->
        ?body:string ->
        unit ->
        object
          val t_request : OcsfmlNetwork.HTTP.Request.t
          method destroy : unit
          method rep__sf_Http_Request : OcsfmlNetwork.HTTP.Request.t
          method set_body : string -> unit
          method set_field : string -> string -> unit
          method set_http_version : int -> int -> unit
          method set_method : OcsfmlNetwork.HTTP.request_method -> unit
          method set_uri : string -> unit
        end
      module Response :
        sig
          type t
          val destroy : OcsfmlNetwork.HTTP.Response.t -> unit
          val default : unit -> OcsfmlNetwork.HTTP.Response.t
          val get_field : OcsfmlNetwork.HTTP.Response.t -> string -> string
          val get_status :
            OcsfmlNetwork.HTTP.Response.t -> OcsfmlNetwork.HTTP.Status.t
          val get_major_http_version : OcsfmlNetwork.HTTP.Response.t -> int
          val get_minor_http_version : OcsfmlNetwork.HTTP.Response.t -> int
          val get_body : OcsfmlNetwork.HTTP.Response.t -> string
        end
      class response :
        OcsfmlNetwork.HTTP.Response.t ->
        object
          val t_response : OcsfmlNetwork.HTTP.Response.t
          method destroy : unit
          method get_body : string
          method get_field : string -> string
          method get_major_http_version : int
          method get_minor_http_version : int
          method get_status : OcsfmlNetwork.HTTP.Status.t
          method rep__sf_Http_Response : OcsfmlNetwork.HTTP.Response.t
        end
      module Http :
        sig
          type t
          val destroy : OcsfmlNetwork.HTTP.Http.t -> unit
          val default : unit -> OcsfmlNetwork.HTTP.Http.t
          val from_host : string -> OcsfmlNetwork.HTTP.Http.t
          val from_host_and_port : string -> int -> OcsfmlNetwork.HTTP.Http.t
          val set_host :
            OcsfmlNetwork.HTTP.Http.t -> ?port:int -> string -> unit
          val send_request :
            OcsfmlNetwork.HTTP.Http.t ->
            ?timeout:OcsfmlSystem.Time.t ->
            OcsfmlNetwork.HTTP.Request.t -> OcsfmlNetwork.HTTP.Response.t
        end
      class http :
        OcsfmlNetwork.HTTP.Http.t ->
        object
          val t_http : OcsfmlNetwork.HTTP.Http.t
          method destroy : unit
          method rep__sf_Http : OcsfmlNetwork.HTTP.Http.t
          method send_request :
            ?timeout:OcsfmlSystem.Time.t ->
            OcsfmlNetwork.HTTP.request -> OcsfmlNetwork.HTTP.response
          method set_host : ?port:int -> string -> unit
        end
    end
  module Packet :
    sig
      type t
      val destroy : OcsfmlNetwork.Packet.t -> unit
      val default : unit -> OcsfmlNetwork.Packet.t
      val append :
        OcsfmlNetwork.Packet.t -> OcsfmlSystem.raw_data_type -> unit
      val clear : OcsfmlNetwork.Packet.t -> unit
      val get_data : OcsfmlNetwork.Packet.t -> OcsfmlSystem.raw_data_type
      val get_data_size : OcsfmlNetwork.Packet.t -> int
      val end_of_packet : OcsfmlNetwork.Packet.t -> bool
      val is_valid : OcsfmlNetwork.Packet.t -> bool
      val read_bool : OcsfmlNetwork.Packet.t -> bool
      val read_int8 : OcsfmlNetwork.Packet.t -> int
      val read_uint8 : OcsfmlNetwork.Packet.t -> int
      val read_int16 : OcsfmlNetwork.Packet.t -> int
      val read_uint16 : OcsfmlNetwork.Packet.t -> int
      val read_int32 : OcsfmlNetwork.Packet.t -> int
      val read_uint32 : OcsfmlNetwork.Packet.t -> int
      val read_float : OcsfmlNetwork.Packet.t -> float
      val read_string : OcsfmlNetwork.Packet.t -> string
      val write_bool : OcsfmlNetwork.Packet.t -> bool -> unit
      val write_int8 : OcsfmlNetwork.Packet.t -> int -> unit
      val write_uint8 : OcsfmlNetwork.Packet.t -> int -> unit
      val write_int16 : OcsfmlNetwork.Packet.t -> int -> unit
      val write_uint16 : OcsfmlNetwork.Packet.t -> int -> unit
      val write_int32 : OcsfmlNetwork.Packet.t -> int -> unit
      val write_uint32 : OcsfmlNetwork.Packet.t -> int -> unit
      val write_float : OcsfmlNetwork.Packet.t -> float -> unit
      val write_string : OcsfmlNetwork.Packet.t -> string -> unit
    end
  class packet :
    object
      val t_packet_base : OcsfmlNetwork.Packet.t
      method append : OcsfmlSystem.raw_data_type -> unit
      method clear : unit
      method destroy : unit
      method end_of_packet : bool
      method get_data : OcsfmlSystem.raw_data_type
      method get_data_size : int
      method is_valid : bool
      method read_bool : bool
      method read_float : float
      method read_int16 : int
      method read_int32 : int
      method read_int8 : int
      method read_string : string
      method read_uint16 : int
      method read_uint32 : int
      method read_uint8 : int
      method rep__sf_Packet : OcsfmlNetwork.Packet.t
      method write_bool : bool -> unit
      method write_float : float -> unit
      method write_int16 : int -> unit
      method write_int32 : int -> unit
      method write_int8 : int -> unit
      method write_string : string -> unit
      method write_uint16 : int -> unit
      method write_uint32 : int -> unit
      method write_uint8 : int -> unit
    end
  type read_val =
      [ `Bool of bool Pervasives.ref
      | `Float of float Pervasives.ref
      | `Int16 of int Pervasives.ref
      | `Int32 of int Pervasives.ref
      | `Int8 of int Pervasives.ref
      | `String of string Pervasives.ref
      | `UInt16 of int Pervasives.ref
      | `UInt32 of int Pervasives.ref
      | `UInt8 of int Pervasives.ref ]
  type write_val =
      [ `Bool of bool
      | `Float of float
      | `Int16 of int
      | `Int32 of int
      | `Int8 of int
      | `String of string
      | `UInt16 of int
      | `UInt32 of int
      | `UInt8 of int ]
  val ( >> ) :
    (#OcsfmlNetwork.packet as 'a) ->
    [< `Bool of bool Pervasives.ref
     | `Float of float Pervasives.ref
     | `Int16 of int Pervasives.ref
     | `Int32 of int Pervasives.ref
     | `Int8 of int Pervasives.ref
     | `String of string Pervasives.ref
     | `UInt16 of int Pervasives.ref
     | `UInt32 of int Pervasives.ref
     | `UInt8 of int Pervasives.ref ] ->
    'a
  val ( << ) :
    (#OcsfmlNetwork.packet as 'a) ->
    [< `Bool of bool
     | `Float of float
     | `Int16 of int
     | `Int32 of int
     | `Int8 of int
     | `String of string
     | `UInt16 of int
     | `UInt32 of int
     | `UInt8 of int ] ->
    'a
  type socket_status = Done | NotReady | Disconnected | Error
  module Socket :
    sig
      type t
      val destroy : OcsfmlNetwork.Socket.t -> unit
      val set_blocking : OcsfmlNetwork.Socket.t -> bool -> unit
      val is_blocking : OcsfmlNetwork.Socket.t -> bool
    end
  class socket :
    OcsfmlNetwork.Socket.t ->
    object
      val t_socket : OcsfmlNetwork.Socket.t
      method destroy : unit
      method is_blocking : bool
      method rep__sf_Socket : OcsfmlNetwork.Socket.t
      method set_blocking : bool -> unit
    end
  module SocketSelector :
    sig
      type t
      val destroy : OcsfmlNetwork.SocketSelector.t -> unit
      val default : unit -> OcsfmlNetwork.SocketSelector.t
      val add :
        OcsfmlNetwork.SocketSelector.t -> OcsfmlNetwork.Socket.t -> unit
      val remove :
        OcsfmlNetwork.SocketSelector.t -> OcsfmlNetwork.Socket.t -> unit
      val clear : OcsfmlNetwork.SocketSelector.t -> unit
      val wait :
        OcsfmlNetwork.SocketSelector.t ->
        ?timeout:OcsfmlSystem.Time.t -> unit -> bool
      val is_ready :
        OcsfmlNetwork.SocketSelector.t -> OcsfmlNetwork.Socket.t -> bool
      val affect :
        OcsfmlNetwork.SocketSelector.t ->
        OcsfmlNetwork.SocketSelector.t -> OcsfmlNetwork.SocketSelector.t
    end
  class socket_selector :
    object ('a)
      val t_socket_selector : OcsfmlNetwork.SocketSelector.t
      method add : #OcsfmlNetwork.socket -> unit
      method affect : '-> unit
      method clear : unit
      method destroy : unit
      method is_ready : #OcsfmlNetwork.socket -> bool
      method remove : #OcsfmlNetwork.socket -> unit
      method rep__sf_SocketSelector : OcsfmlNetwork.SocketSelector.t
      method wait : ?timeout:OcsfmlSystem.Time.t -> unit -> bool
    end
  module Port :
    sig type t = private int val from_int : int -> OcsfmlNetwork.Port.t end
  module TcpSocket :
    sig
      type t
      val destroy : OcsfmlNetwork.TcpSocket.t -> unit
      val to_socket : OcsfmlNetwork.TcpSocket.t -> OcsfmlNetwork.Socket.t
      val default : unit -> OcsfmlNetwork.TcpSocket.t
      val get_local_port : OcsfmlNetwork.TcpSocket.t -> OcsfmlNetwork.Port.t
      val get_remote_address :
        OcsfmlNetwork.TcpSocket.t -> OcsfmlNetwork.IPAddress.t
      val get_remote_port : OcsfmlNetwork.TcpSocket.t -> OcsfmlNetwork.Port.t
      val connect :
        OcsfmlNetwork.TcpSocket.t ->
        ?timeout:OcsfmlSystem.Time.t ->
        OcsfmlNetwork.IPAddress.t ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      val disconnect : OcsfmlNetwork.TcpSocket.t -> unit
      val send_packet :
        OcsfmlNetwork.TcpSocket.t ->
        OcsfmlNetwork.Packet.t -> OcsfmlNetwork.socket_status
      val receive_packet :
        OcsfmlNetwork.TcpSocket.t ->
        OcsfmlNetwork.Packet.t -> OcsfmlNetwork.socket_status
      val send_data :
        OcsfmlNetwork.TcpSocket.t ->
        OcsfmlSystem.raw_data_type -> OcsfmlNetwork.socket_status
      val receive_data :
        OcsfmlNetwork.TcpSocket.t ->
        OcsfmlSystem.raw_data_type -> OcsfmlNetwork.socket_status * int
      val send_string :
        OcsfmlNetwork.TcpSocket.t -> string -> OcsfmlNetwork.socket_status
      val receive_string :
        OcsfmlNetwork.TcpSocket.t ->
        string -> OcsfmlNetwork.socket_status * int
    end
  class tcp_socket :
    object
      val t_socket : Socket.t
      val t_tcp_socket_base : OcsfmlNetwork.TcpSocket.t
      method connect :
        ?timeout:OcsfmlSystem.Time.t ->
        OcsfmlNetwork.ip_address ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      method destroy : unit
      method disconnect : unit
      method get_local_port : OcsfmlNetwork.Port.t
      method get_remote_address : OcsfmlNetwork.ip_address
      method get_remote_port : OcsfmlNetwork.Port.t
      method is_blocking : bool
      method receive_data :
        OcsfmlSystem.raw_data_type -> OcsfmlNetwork.socket_status * int
      method receive_packet :
        #OcsfmlNetwork.packet -> OcsfmlNetwork.socket_status
      method receive_string : string -> OcsfmlNetwork.socket_status * int
      method rep__sf_Socket : Socket.t
      method rep__sf_TcpSocket : OcsfmlNetwork.TcpSocket.t
      method send_data :
        OcsfmlSystem.raw_data_type -> OcsfmlNetwork.socket_status
      method send_packet :
        #OcsfmlNetwork.packet -> OcsfmlNetwork.socket_status
      method send_string : string -> OcsfmlNetwork.socket_status
      method set_blocking : bool -> unit
    end
  module TcpListener :
    sig
      type t
      val destroy : OcsfmlNetwork.TcpListener.t -> unit
      val to_socket : OcsfmlNetwork.TcpListener.t -> OcsfmlNetwork.Socket.t
      val default : unit -> OcsfmlNetwork.TcpListener.t
      val get_local_port :
        OcsfmlNetwork.TcpListener.t -> OcsfmlNetwork.Port.t
      val listen :
        OcsfmlNetwork.TcpListener.t ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      val close : OcsfmlNetwork.TcpListener.t -> unit
      val accept :
        OcsfmlNetwork.TcpListener.t ->
        OcsfmlNetwork.TcpSocket.t -> OcsfmlNetwork.socket_status
    end
  class tcp_listener :
    object
      val t_socket : Socket.t
      val t_tcp_listener_base : OcsfmlNetwork.TcpListener.t
      method accept : OcsfmlNetwork.tcp_socket -> OcsfmlNetwork.socket_status
      method close : unit
      method destroy : unit
      method get_local_port : OcsfmlNetwork.Port.t
      method is_blocking : bool
      method listen : OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      method rep__sf_Socket : Socket.t
      method rep__sf_TcpListener : OcsfmlNetwork.TcpListener.t
      method set_blocking : bool -> unit
    end
  val max_datagram_size : int
  module UdpSocket :
    sig
      type t
      val destroy : OcsfmlNetwork.UdpSocket.t -> unit
      val to_socket : OcsfmlNetwork.UdpSocket.t -> OcsfmlNetwork.Socket.t
      val default : unit -> OcsfmlNetwork.UdpSocket.t
      val bind :
        OcsfmlNetwork.UdpSocket.t ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      val unbind : OcsfmlNetwork.UdpSocket.t -> unit
      val get_local_port : OcsfmlNetwork.UdpSocket.t -> OcsfmlNetwork.Port.t
      val send_packet :
        OcsfmlNetwork.UdpSocket.t ->
        OcsfmlNetwork.Packet.t ->
        OcsfmlNetwork.IPAddress.t ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      val receive_packet :
        OcsfmlNetwork.UdpSocket.t ->
        OcsfmlNetwork.Packet.t ->
        OcsfmlNetwork.IPAddress.t ->
        OcsfmlNetwork.socket_status * OcsfmlNetwork.Port.t
      val send_data :
        OcsfmlNetwork.UdpSocket.t ->
        OcsfmlSystem.raw_data_type ->
        OcsfmlNetwork.IPAddress.t ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      val receive_data :
        OcsfmlNetwork.UdpSocket.t ->
        OcsfmlSystem.raw_data_type ->
        OcsfmlNetwork.IPAddress.t ->
        OcsfmlNetwork.socket_status * int * OcsfmlNetwork.Port.t
      val send_string :
        OcsfmlNetwork.UdpSocket.t ->
        string ->
        OcsfmlNetwork.IPAddress.t ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      val receive_string :
        OcsfmlNetwork.UdpSocket.t ->
        string ->
        OcsfmlNetwork.IPAddress.t ->
        OcsfmlNetwork.socket_status * int * OcsfmlNetwork.Port.t
    end
  class udp_socket :
    object
      val t_socket : Socket.t
      val t_udp_socket_base : OcsfmlNetwork.UdpSocket.t
      method bind : OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      method destroy : unit
      method get_local_port : OcsfmlNetwork.Port.t
      method is_blocking : bool
      method receive_data :
        OcsfmlSystem.raw_data_type ->
        OcsfmlNetwork.ip_address ->
        OcsfmlNetwork.socket_status * int * OcsfmlNetwork.Port.t
      method receive_packet :
        #OcsfmlNetwork.packet ->
        OcsfmlNetwork.ip_address ->
        OcsfmlNetwork.socket_status * OcsfmlNetwork.Port.t
      method receive_string :
        string ->
        OcsfmlNetwork.ip_address ->
        OcsfmlNetwork.socket_status * int * OcsfmlNetwork.Port.t
      method rep__sf_Socket : Socket.t
      method rep__sf_UdpSocket : OcsfmlNetwork.UdpSocket.t
      method send_data :
        OcsfmlSystem.raw_data_type ->
        OcsfmlNetwork.ip_address ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      method send_packet :
        #OcsfmlNetwork.packet ->
        OcsfmlNetwork.ip_address ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      method send_string :
        string ->
        OcsfmlNetwork.ip_address ->
        OcsfmlNetwork.Port.t -> OcsfmlNetwork.socket_status
      method set_blocking : bool -> unit
      method unbind : unit
    end
end