KExtendedSocket Class Reference
The extended socket class. an extended socket. More...
#include <kextsock.h>
Inheritance diagram for KExtendedSocket:

Public Types | |
enum | Flags { anySocket = 0x00, knownSocket = 0x01, unixSocket = knownSocket | 0x02, inetSocket = knownSocket | 0x04, ipv4Socket = inetSocket | 0x100, ipv6Socket = inetSocket | 0x200, passiveSocket = 0x1000, canonName = 0x2000, noResolve = 0x4000, streamSocket = 0x8000, datagramSocket = 0x10000, rawSocket = 0x20000, inputBufferedSocket = 0x200000, outputBufferedSocket = 0x400000, bufferedSocket = 0x600000 } |
enum | SockStatus { error = -1, nothing = 0, lookupInProgress = 50, lookupDone = 70, created = 100, bound = 140, connecting = 200, connected = 220, listening = 200, accepting = 220, closing = 350, done = 400 } |
Signals | |
void | lookupFinished (int count) |
void | connectionSuccess () |
void | connectionFailed (int error) |
void | readyAccept () |
Public Methods | |
KExtendedSocket () | |
KExtendedSocket (const QString &host, int port, int flags=0) | |
KExtendedSocket (const QString &host, const QString &service, int flags=0) | |
virtual | ~KExtendedSocket () |
void | reset () |
int | socketStatus () const |
int | systemError () const |
int | setSocketFlags (int flags) |
int | socketFlags () const |
bool | setHost (const QString &host) |
QString | host () const |
bool | setPort (int port) |
bool | setPort (const QString &port) |
QString | port () const |
bool | setAddress (const QString &host, int port) |
bool | setAddress (const QString &host, const QString &serv) |
bool | setBindHost (const QString &host) |
bool | unsetBindHost () |
QString | bindHost () const |
bool | setBindPort (int port) |
bool | setBindPort (const QString &service) |
bool | unsetBindPort () |
QString | bindPort () const |
bool | setBindAddress (const QString &host, int port) |
bool | setBindAddress (const QString &host, const QString &service) |
bool | unsetBindAddress () |
bool | setTimeout (int secs, int usecs=0) |
timeval | timeout () const |
bool | setBlockingMode (bool enable) |
bool | blockingMode () |
bool | setAddressReusable (bool enable) |
bool | addressReusable () |
bool | setIPv6Only (bool enable) |
bool | isIPv6Only () |
virtual bool | setBufferSize (int rsize, int wsize=-2) |
const KSocketAddress * | localAddress () |
const KSocketAddress * | peerAddress () |
int | fd () const |
virtual int | lookup () |
virtual int | startAsyncLookup () |
virtual void | cancelAsyncLookup () |
virtual int | listen (int N=5) |
virtual int | accept (KExtendedSocket *&sock) |
virtual int | connect () |
virtual int | startAsyncConnect () |
virtual void | cancelAsyncConnect () |
virtual bool | open (int mode=IO_Raw|IO_ReadWrite) |
virtual void | close () |
virtual void | closeNow () |
virtual void | release () |
virtual void | flush () |
virtual Q_ULONG | size () const |
virtual Q_ULONG | at () const |
virtual bool | at (int i) |
virtual bool | atEnd () const |
virtual Q_LONG | readBlock (char *data, Q_ULONG maxlen) |
virtual Q_LONG | writeBlock (const char *data, Q_ULONG len) |
virtual int | peekBlock (char *data, uint maxlen) |
virtual int | unreadBlock (const char *data, uint len) |
virtual int | bytesAvailable () const |
virtual int | waitForMore (int msec) |
virtual int | getch () |
virtual int | putch (int ch) |
virtual int | ungetch (int) |
virtual void | enableRead (bool enable) |
virtual void | enableWrite (bool enable) |
Static Public Methods | |
int | resolve (sockaddr *sock, ksocklen_t len, QString &host, QString &port, int flags=0) |
int | resolve (KSocketAddress *sock, QString &host, QString &port, int flags=0) |
QPtrList< KAddressInfo > | lookup (const QString &host, const QString &port, int flags=0, int *error=0) |
KSocketAddress * | localAddress (int fd) |
KSocketAddress * | peerAddress (int fd) |
QString | strError (int code, int syserr) |
bool | setAddressReusable (int fd, bool enable) |
Protected Slots | |
void | socketActivityRead () |
void | socketActivityWrite () |
void | dnsResultsReady () |
void | startAsyncConnectSlot () |
void | connectionEvent () |
Protected Methods | |
QSocketNotifier * | readNotifier () |
QSocketNotifier * | writeNotifier () |
void | setError (int errorkind, int error) |
void | cleanError () |
void | setSocketStatus (int status) |
virtual void | virtual_hook (int id, void *data) |
Protected Attributes | |
int | sockfd |
Friends | |
class | KSocket |
class | KServerSocket |
Detailed Description
The extended socket class. an extended socket.This class should be used instead of KSocket whenever the user needs fine-grained control over the socket being created. Unlike KSocket, which does everything at once, without much intervention, KExtendedSocket allows intervention at every step of the process and the setting of parameters.
This class allows for the creation of both server and client sockets. The only difference is that the passiveSocket flag must be passed either to the constructor or to setSocketFlags(). If passiveSocket is used, the class will enable functions listen() and accept() and related signals, and will also disable readBlock() and writeBlock().
To create a Unix socket, one would pass flag unixSocket to the constructor or setSocketFlags(). The hostname and service/port can be set to whatever is necessary. If no hostname is given, but a service/port is, the socket created will be implementation dependant (usually in /tmp). In any other case, the fields will be concatenated.
To create an Internet socket, inetSocket flag can be used. If, on the other hand a specific IP protocol is desired, ipv4Socket and/or ipv6Socket can be used.
Note that the socket type selection flags are cumulative. One could select Unix and Internet sockets by using unixSocket | inetSocket. Or, for instance, to make sure only IPv4 and IPv6 sockets are selected, even if future implementations support newer IP protocols, ipv4Socket | ipv6Socket is your guy.
- Author:
- Thiago Macieira <thiagom@mail.com>
- Version:
- Id:
- kextsock.h,v 1.42 2003/10/07 22:09:16 mueller Exp
Definition at line 83 of file kextsock.h.
Member Enumeration Documentation
|
flags that can be passed down to the member functions.
Definition at line 91 of file kextsock.h. |
|
status of the class The status are sequential. If a change to one status is requested, all the prior status will be passed and their actions, performed Definition at line 123 of file kextsock.h. |
Constructor & Destructor Documentation
|
Creates an empty KExtendedSocket.
Definition at line 417 of file kextsock.cpp. |
|
Creates a socket with the given hostname and port.
Definition at line 423 of file kextsock.cpp. References QIODevice::flags(), port(), setAddress(), and setSocketFlags(). |
|
Creates a socket with the given hostname and service.
Definition at line 431 of file kextsock.cpp. References QIODevice::flags(), setAddress(), and setSocketFlags(). |
|
Destroys the socket, disconnecting if still connected and freeing any related resources still being kept.
Definition at line 439 of file kextsock.cpp. References closeNow(). |
Member Function Documentation
|
Resets the socket, disconnecting if still connected and freeing any related resources still being kept.
Reimplemented from QIODevice. Definition at line 459 of file kextsock.cpp. |
|
Returns the class status.
Definition at line 468 of file kextsock.cpp. |
|
Returns the related system error code Except for IO_LookupError errors, these are codes found in errno.
Definition at line 484 of file kextsock.cpp. |
|
Sets the given flags.
Definition at line 493 of file kextsock.cpp. References QIODevice::flags(). Referenced by KExtendedSocket(). |
|
Returns the current flags.
Definition at line 501 of file kextsock.cpp. |
|
Sets the hostname to the given value.
Definition at line 510 of file kextsock.cpp. Referenced by setAddress(). |
|
Returns the hostname.
Definition at line 522 of file kextsock.cpp. |
|
Sets the port/service.
Definition at line 531 of file kextsock.cpp. References QString::number(), and port(). Referenced by setAddress(). |
|
Sets the port/service.
Definition at line 536 of file kextsock.cpp. |
|
Returns the port/service. If it is a port, the string contains a number.
Definition at line 548 of file kextsock.cpp. Referenced by KExtendedSocket(), setAddress(), setBindAddress(), setBindPort(), and setPort(). |
|
Sets the address where we will connect to.
Definition at line 556 of file kextsock.cpp. References port(), setHost(), and setPort(). Referenced by KExtendedSocket(). |
|
Sets the address where we will connect to.
Definition at line 564 of file kextsock.cpp. |
|
Sets the hostname to which we will bind locally before connecting.
Definition at line 574 of file kextsock.cpp. Referenced by setBindAddress(). |
|
Unsets the bind hostname. That is, don't request a binding host.
Definition at line 587 of file kextsock.cpp. Referenced by unsetBindAddress(). |
|
Returns the hostname to which the socket will be/is bound.
Definition at line 599 of file kextsock.cpp. |
|
Sets the port/service to which we will bind before connecting.
Definition at line 608 of file kextsock.cpp. References QString::number(), and port(). Referenced by setBindAddress(). |
|
Sets the port/service to which we will bind before connecting.
Definition at line 613 of file kextsock.cpp. |
|
Unsets the bind port/service.
Definition at line 625 of file kextsock.cpp. Referenced by unsetBindAddress(). |
|
Returns the service to which the socket will be/is bound.
Definition at line 637 of file kextsock.cpp. |
|
Sets both host and port to which we will bind the socket. Will return false if this is a passiveSocket.
Definition at line 645 of file kextsock.cpp. References port(), setBindHost(), and setBindPort(). |
|
Sets both host and service to which we will bind the socket. Will return false if this is a passiveSocket.
Definition at line 653 of file kextsock.cpp. References setBindHost(), and setBindPort(). |
|
Unsets the bind address for the socket. That means that we won't attempt to bind to an address before connecting.
Definition at line 661 of file kextsock.cpp. References unsetBindHost(), and unsetBindPort(). |
|
Sets the timeout value for the connection (if this is not passiveSocket) or acception (if it is). In the event the given function (connect or accept) returns due to time out, it's possible to call it again. Setting the timeout to 0 disables the timeout feature.
Definition at line 669 of file kextsock.cpp. |
|
Returns the timeout value for the connection.
Definition at line 682 of file kextsock.cpp. |
|
Sets/unsets blocking mode for the socket. When non-blocking mode is enabled, I/O operations might return error and set errno to EWOULDBLOCK. Also, it's not recommended to use this when using the class signals.
Definition at line 690 of file kextsock.cpp. References setError(). |
|
Returns the current blocking mode for this socket.
Definition at line 719 of file kextsock.cpp. References setError(). Referenced by accept(). |
|
Sets/unsets address reusing flag for this socket. This function returns true if the value was set correctly. That is NOT the result of the set.
Definition at line 740 of file kextsock.cpp. References setError(). |
|
Returns whether this socket's address can be reused.
Definition at line 773 of file kextsock.cpp. References setError(). |
|
Sets/unsets the v6-only flag for IPv6 sockets. When an IPv6 socket is in use, communication with IPv4 sockets is guaranteed by translating those IPv4 addresses into IPv6 ones (specifically, the v4-mapped addresses). This flag allows that behavior to be turned on and off. Note that this does not have any effect on sockets that are not IPv6 and the function will always return false in those cases. Also note that this flag defaults to off in order to accommodate existing applications.
Definition at line 796 of file kextsock.cpp. References setError(). |
|
Returns the status of the v6-only flag for IPv6 sockets.
Definition at line 828 of file kextsock.cpp. References setError(). |
|
Sets the buffer sizes for this socket. This implementation allows any size for both parameters. The value given will be interpreted as the maximum size allowed for the buffers, after which the I/O functions will stop buffering. The value of -1 will be interpreted as "unlimited" size. The value of -2 means "no change". Note: changing the buffer size to 0 for any buffer will cause the given buffer's to be discarded. Likewise, setting the size to a value less than the current size will cause the buffer to be shrunk to the wanted value, as if the data had been read.
Reimplemented from KBufferedIO. Definition at line 858 of file kextsock.cpp. References QObject::connect(), KBufferedIO::consumeReadBuffer(), KBufferedIO::consumeWriteBuffer(), QIODevice::mode(), KBufferedIO::readBufferSize(), and KBufferedIO::writeBufferSize(). |
|
Returns the local socket address.
Definition at line 958 of file kextsock.cpp. |
|
Returns the peer socket address. Use KExtendedSocket::resolve() to resolve this to a human-readable hostname/service or port.
Definition at line 973 of file kextsock.cpp. |
|
Returns the file descriptor.
Definition at line 452 of file kextsock.h. Referenced by localAddress(), peerAddress(), setAddressReusable(), and KServerSocket::slotAccept(). |
|
Performs lookup on the addresses we were given before. This will perform lookups on the bind addresses if they were given.
Definition at line 986 of file kextsock.cpp. References setError(). |
|
Starts an asynchronous lookup for the addresses given. When the lookup is done, the lookupReady signal will be emitted. Note that, depending on the parameters for the lookup, this function might know the results without the need for blocking or queuing an asynchronous lookup. That means that the lookupReady signal might be emitted by this function, so your code should be prepared for that. One such case is when noResolve flag is set. If this function is able to determine the results without queuing and the lookup failed, this function will return -1.
Definition at line 1032 of file kextsock.cpp. References QObject::connect(), lookupFinished(), and setError(). Referenced by startAsyncConnect(). |
|
Cancels any on-going asynchronous lookups.
Definition at line 1105 of file kextsock.cpp. Referenced by closeNow(). |
|
Place the socket in listen mode. The parameters are the same as for the system listen() call.
Definition at line 1128 of file kextsock.cpp. References KSocks::bind(), QObject::connect(), KSocks::listen(), lookup(), KSocks::self(), setAddressReusable(), setError(), and setIPv6Only(). |
|
Accepts an incoming connection from the socket. If this socket is in blocking mode, this function will block until a connection is received. Otherwise, it might return with error. The sock parameter will be initialised with the newly created socket. Upon successful acception (i.e., this function returns 0), the newly created socket will be already connected. The socket will be unbuffered and readyRead() and readyWrite() signals will be disabled.
Definition at line 1199 of file kextsock.cpp. References KSocks::accept(), blockingMode(), d, listen(), KSocks::select(), KSocks::self(), setBlockingMode(), setBufferSize(), setError(), and sockfd. |
|
Attempts to connect to the remote host. After successful connection (return value 0), the socket will be ready for I/O operations. Note, however, that not all signals may be enabled for emission by this socket:
Definition at line 1273 of file kextsock.cpp. References KSocks::bind(), KSocks::connect(), connectionFailed(), connectionSuccess(), KStdAccel::end(), KSocks::hasWorkingAsyncConnect(), lookup(), KSocks::select(), KSocks::self(), setAddressReusable(), setBlockingMode(), setBufferSize(), setError(), and setIPv6Only(). Referenced by open(). |
|
Starts an asynchronous connect. This works exactly the same as connect, except that the connection result won't be returned. Note that those signals might be emitted before this function returns, so your code should be prepared for that condition. You must call cancelAsyncConnect() before you delete the socket if you call this. Otherwise you will have crashes.
Definition at line 1491 of file kextsock.cpp. References QObject::connect(), lookupFinished(), and startAsyncLookup(). |
|
Cancels any on-going asynchronous connection attempt.
Definition at line 1526 of file kextsock.cpp. Referenced by closeNow(). |
|
Implementation of QIODevice::open() pure virtual function. This depends on the target host address already being there. If this is a passiveSocket, this is identical to call listen(); else, if this is not a passiveSocket and no connection attempt is in progress, this is like connect(). If one is in progress, this function will fail.
Reimplemented from QIODevice. Definition at line 1546 of file kextsock.cpp. References connect(), listen(), and QIODevice::mode(). |
|
Closes the socket. If we have data still in the write buffer yet to be sent, the socket won't be closed right now. It'll be closed after we managed to send everything out. If you want to close the socket now, you may want to call flush() first, and then closeNow(). Reimplemented from QIODevice. Definition at line 1559 of file kextsock.cpp. References KBufferedIO::closed(), KBufferedIO::readBufferSize(), and KBufferedIO::writeBufferSize(). |
|
Closes the socket now, discarding the contents of the write buffer, if any. The read buffer's contents are kept until they are emptied by read operations or the class is destroyed. Implements KBufferedIO. Definition at line 1593 of file kextsock.cpp. References cancelAsyncConnect(), cancelAsyncLookup(), KBufferedIO::closed(), KBufferedIO::readBufferSize(), and KBufferedIO::writeBufferSize(). Referenced by reset(), and ~KExtendedSocket(). |
|
Releases the socket and anything we have holding on it. The class cannot be used anymore. In other words, this is just like closeNow(), but it does not actually close the socket. This is useful if you just want to connect and don't need the rest of the class. Note that the buffers' contents will be discarded. Use of this method is discouraged, because the socket created might be such that normal library routines can't handle (read, write, close, etc.) Definition at line 1620 of file kextsock.cpp. References KBufferedIO::consumeReadBuffer(), KBufferedIO::consumeWriteBuffer(), KBufferedIO::readBufferSize(), and KBufferedIO::writeBufferSize(). Referenced by reset(), and KServerSocket::slotAccept(). |
|
Flushes the socket buffer. You need not call this method during normal operation as we will try and send everything as soon as possible. However, if you want to make sure that data in the buffer is being sent at this moment, you can call this function. It will try to send as much data as possible, but it will stop as soon as the kernel cannot receive any more data, and would possibly block. By repeatedly calling this function, the behavior will be like that of a blocking socket. Indeed, if this function is called with the kernel not ready to receive data, it will block, unless this is a non-blocking socket. This function does not touch the read buffer. You can empty it by calling readBlock() with a null destination buffer. Reimplemented from QIODevice. Definition at line 1654 of file kextsock.cpp. References KBufferedIO::bytesWritten(), KBufferedIO::consumeWriteBuffer(), QPtrList< QByteArray >::first(), QPtrList< QByteArray >::next(), KBufferedIO::outBuf, KSocks::self(), setError(), KSocks::write(), and KBufferedIO::writeBufferSize(). |
|
Returns length of this socket. This call is not supported on sockets.
Reimplemented from QIODevice. Definition at line 632 of file kextsock.h. |
|
Returns relative position from start. This call is not supported on sockets.
Reimplemented from QIODevice. Definition at line 639 of file kextsock.h. |
|
Returns true if we are at position. This is not supported on sockets.
Definition at line 647 of file kextsock.h. |
|
Returns true if we are at the end. This is not supported on sockets, but we always are at the end in a socket...
Reimplemented from QIODevice. Definition at line 655 of file kextsock.h. |
|
Reads a block of data from the socket. If the socket is not buffered, this function will simply call the underlying read method. This function will block if the socket is not on non-blocking mode (see setBlockingMode) and there is not enough data to be read in the Operating System yet. If we are in non-blocking operation, the call will fail in this case. However, if we are buffering, this function will instead read from the buffer while there is available data. This function will never block in buffering mode, which means that if you try to read while the buffers are empty, this function will always return -1 and set the system error to EWOULDBLOCK (aka EAGAIN), so as to mimic non-blocking operation.
Reimplemented from QIODevice. Definition at line 1713 of file kextsock.cpp. References KBufferedIO::consumeReadBuffer(), KSocks::read(), KSocks::self(), and setError(). Referenced by getch(). |
|
Writes a block of data to the socket. If the socket is not buffered, this function will simply call the underlying write method. This means that the function might block if that method blocks as well. That situation is possible if we are not in non-blocking mode and the operating system buffers are full for this socket. If we are in non-blocking mode and the operating system buffers are full, this function will return -1 and the system error will be set to EWOULDBLOCK. If we are buffering, this function will simply transfer the data into the write buffer. This function will then always succeed, as long as there is enough room in the buffer. If the buffer size was limited and that limit is reached, this function will copy no more bytes than that limit. Trying to write with a full buffer will return -1 and set system error to EWOULDBLOCK.
Reimplemented from QIODevice. Definition at line 1758 of file kextsock.cpp. References KBufferedIO::bytesWritten(), KBufferedIO::feedWriteBuffer(), KSocks::self(), setError(), KSocks::write(), and KBufferedIO::writeBufferSize(). Referenced by putch(). |
|
Peeks at a block of data from the socket. This is exactly like read, except that the data won't be flushed from the read buffer. If this socket is not buffered, this function will always return with 0 bytes copied.
Implements KBufferedIO. Definition at line 1812 of file kextsock.cpp. References KBufferedIO::consumeReadBuffer(). |
|
Reimplementation of unreadBlock() method. This is so because unreading in sockets doesn't make sense, so this function will always return -1 (error) and set the system error to ENOSYS.
Reimplemented from KBufferedIO. Definition at line 1827 of file kextsock.cpp. References setError(). |
|
Returns the number of available bytes yet to be read via readBlock and family of functions. Note: as of now, this only works on input-buffered sockets. This will change in the future
Reimplemented from KBufferedIO. Definition at line 1834 of file kextsock.cpp. References KBufferedIO::bytesAvailable(). Referenced by waitForMore(). |
|
Waits The return value is the amount of data available for read in the read buffer.
Implements KBufferedIO. Definition at line 1847 of file kextsock.cpp. References bytesAvailable(), KSocks::select(), KSocks::self(), and setError(). |
|
Gets a single character (unsigned char) from the stream.
Reimplemented from QIODevice. Definition at line 1874 of file kextsock.cpp. References readBlock(). |
|
Writes a single character (unsigned char) to the stream. All other bits will be ignored.
Reimplemented from QIODevice. Definition at line 1885 of file kextsock.cpp. References writeBlock(). |
|
Unreads one character from the stream. This is not possible on sockets.
Reimplemented from QIODevice. Definition at line 777 of file kextsock.h. |
|
Toggles the emission of the readyRead signal. Note that this signal is emitted every time more data is available to be read, so you might get flooded with it being emitted every time, when in non-buffered mode. However, in buffered mode, this signal will be emitted only when there is data coming in from the wire. By default, this flag is set to false, i.e., signal not being emitted.
Implements KAsyncIO. Definition at line 1924 of file kextsock.cpp. |
|
Toggles the emission of the readyWrite signal. Note that this signal is emitted only when the OS is ready to receive more data, which means that the write buffer is empty. And when that is reached, this signal will possibly be emitted on every loop, so you might want to disable it. By default, this flag is set to false.
Implements KAsyncIO. Definition at line 1939 of file kextsock.cpp. |
|
This signal is emitted whenever an asynchronous lookup process is done.
The parameter
Referenced by startAsyncConnect(), and startAsyncLookup(). |
|
This signal is emitted whenever we connected asynchronously to a host.
Referenced by connect(). |
|
This signal is emitted whenever our asynchronous connection attempt failed to all hosts listed.
Referenced by connect(). |
|
This signal is emitted whenever this socket is ready to accept another socket.
|
|
Sets the error code.
Definition at line 478 of file kextsock.cpp. Referenced by accept(), addressReusable(), blockingMode(), connect(), flush(), isIPv6Only(), listen(), lookup(), readBlock(), setAddressReusable(), setBlockingMode(), setIPv6Only(), startAsyncLookup(), unreadBlock(), waitForMore(), and writeBlock(). |
|
Sets the socket status. For derived classes only. Definition at line 473 of file kextsock.cpp. |
|
Performs resolution on the given socket address. That is, tries to resolve the raw form of the socket address into a textual representation.
Definition at line 2307 of file kextsock.cpp. References QIODevice::flags(), and QString::fromUtf8(). Referenced by resolve(). |
|
Performs resolution on the given socket address. That is, tries to resolve the raw form of the socket address into a textual representation.
Definition at line 2322 of file kextsock.cpp. References KSocketAddress::data, KSocketAddress::datasize, QIODevice::flags(), and resolve(). |
|
Performs lookup on the given hostname/port combination and returns a list of matching addresses. The error code can be transformed into string by KExtendedSocket::strError() with code of IO_LookupError. IMPORTANT: the result values of the QPtrList must be deleted after use. So, if you don't copy the KAddressInfo objects, the best way to assure that is to call setAutoDelete(true) on the list right after this function returns. If you do copy the results out, you must assure that the objects get deleted when they are not needed any more.
Definition at line 2328 of file kextsock.cpp. References QPtrList::append(), and QIODevice::flags(). |
|
Returns the local socket address Remember to delete the returned object when it is no longer needed.
Definition at line 2369 of file kextsock.cpp. References fd(), KSocks::getsockname(), KSocketAddress::newAddress(), and KSocks::self(). |
|
Returns the peer socket address. Use KExtendedSocket::resolve() to resolve this to a human-readable hostname/service or port. Remember to delete the returned object when it is no longer needed.
Definition at line 2417 of file kextsock.cpp. References fd(), KSocks::getpeername(), KSocketAddress::newAddress(), and KSocks::self(). |
|
Returns the representing text of this error code.
Definition at line 2463 of file kextsock.cpp. References QString::fromLocal8Bit(). |
|
Sets/unsets address reusing flag for this socket. This function returns true if the value was set correctly. That is NOT the result of the set.
Definition at line 758 of file kextsock.cpp. References fd(). |
The documentation for this class was generated from the following files: