TCPSocket.h
Go to the documentation of this file.
00001 // ****************************************************************************
00002 // This file is part of the Integrating Vision Toolkit (IVT).
00003 //
00004 // The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
00005 // (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
00006 //
00007 // Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
00008 // All rights reserved.
00009 //
00010 // Redistribution and use in source and binary forms, with or without
00011 // modification, are permitted provided that the following conditions are met:
00012 //
00013 // 1. Redistributions of source code must retain the above copyright
00014 //    notice, this list of conditions and the following disclaimer.
00015 //
00016 // 2. Redistributions in binary form must reproduce the above copyright
00017 //    notice, this list of conditions and the following disclaimer in the
00018 //    documentation and/or other materials provided with the distribution.
00019 //
00020 // 3. Neither the name of the KIT nor the names of its contributors may be
00021 //    used to endorse or promote products derived from this software
00022 //    without specific prior written permission.
00023 //
00024 // THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
00025 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00026 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00027 // DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
00028 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00029 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00030 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00031 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00032 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00033 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034 // ****************************************************************************
00035 // ****************************************************************************
00036 // Filename:  TCPSocket.h
00037 // Author:    Florian Hecht
00038 // Date:      08.01.2009
00039 // ****************************************************************************
00040 
00041 #ifndef _TCP_SOCKET_H_
00042 #define _TCP_SOCKET_H_
00043 
00044 
00045 
00046 // this is a simple TCP socket
00047 // the socket is in non-blocking, no linger mode, no tcp delay mode
00048 class CTCPSocket
00049 {
00050 public:
00051         // constructor
00052         CTCPSocket();
00053         
00054         // destructor
00055         ~CTCPSocket();
00056         
00057         // public methods
00058         
00059         // activate the socket as a listening socket and
00060         // bind it to the default ip address or the one supplied
00061         // in 'ip'
00062         bool Listen(const unsigned char *ip = 0, int port = 0);
00063         // accept a connection from a listening socket
00064         // this is non-blocking, returns NULL if no new
00065         // client is available
00066         CTCPSocket* Accept(unsigned char *ip = 0);
00067         
00068         // check if the socket is valid
00069         bool IsOpen() const { return m_socket != -1; }
00070         
00071         // open a connection to a remote host at ip:port
00072         bool Open(const unsigned char *ip, int port);
00073         // close the socket
00074         void Close();
00075         
00076         // send data. Returns true if send was successful.
00077         bool Send(const void *pData, int nBytes);
00078         
00079         // receive data. Returns the number of received bytes or -1
00080         // in case of a failure. Since the socket is non-blocking
00081         // the returned number of bytes can be less than
00082         // max_num_bytes. If wait is true, the function will return
00083         // after max_num_bytes have been read.
00084         int Recv(void *pData, int nMaxBytes, bool bWait = false);
00085 
00086         
00087 private:
00088         // private attributes
00089         int     m_socket;
00090         bool m_bListening;
00091 };
00092 
00093 
00094 
00095 #endif /* _TCP_SOCKET_H_ */


asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Thu Jun 6 2019 21:46:58