(* ClientSocket.def provides a client TCP interface for ChanIds. Copyright (C) 2008-2025 Free Software Foundation, Inc. Contributed by Gaius Mulley . This file is part of GNU Modula-2. GNU Modula-2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GNU Modula-2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Under Section 7 of GPL version 3, you are granted additional permissions described in the GCC Runtime Library Exception, version 3.1, as published by the Free Software Foundation. You should have received a copy of the GNU General Public License and a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . *) DEFINITION MODULE ClientSocket ; FROM IOChan IMPORT ChanId ; FROM ChanConsts IMPORT FlagSet, OpenResults ; (* OpenSocket - opens a TCP client connection to host:port. *) PROCEDURE OpenSocket (VAR cid: ChanId; host: ARRAY OF CHAR; port: CARDINAL; f: FlagSet; VAR res: OpenResults) ; (* Close - if the channel identified by cid is not open to a socket stream, the exception wrongDevice is raised; otherwise closes the channel, and assigns the value identifying the invalid channel to cid. *) PROCEDURE Close (VAR cid: ChanId) ; (* IsSocket - tests if the channel identified by cid is open as a client socket stream. *) PROCEDURE IsSocket (cid: ChanId) : BOOLEAN ; END ClientSocket.