DCL 4.0
Loading...
Searching...
No Matches
Socket.cpp File Reference
#include <dcl/Config.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <netdb.h>
#include <unistd.h>
#include <stdlib.h>
#include <dcl/Charset.h>
#include <dcl/Numeric.h>
#include <dcl/Socket.h>
#include "__strumbs.h"

Go to the source code of this file.

Macros

#define SOCKET_TYPE   int
#define INVALID_HANDLE_VALUE   -1
#define INVALID_SOCKET   -1
#define closesocket(s)
#define ioctlsocket(s, cmd, argp)
#define __ERRNO   errno

Functions

__DCL_BEGIN_NAMESPACE IMPLEMENT_CLASSINFO (Socket, PollAble) String Socket

Macro Definition Documentation

◆ __ERRNO

#define __ERRNO   errno

Definition at line 41 of file Socket.cpp.

◆ closesocket

#define closesocket ( s)
Value:
close(s)

Definition at line 39 of file Socket.cpp.

◆ INVALID_HANDLE_VALUE

#define INVALID_HANDLE_VALUE   -1

Definition at line 37 of file Socket.cpp.

◆ INVALID_SOCKET

#define INVALID_SOCKET   -1

Definition at line 38 of file Socket.cpp.

◆ ioctlsocket

#define ioctlsocket ( s,
cmd,
argp )
Value:
ioctl(s, cmd, argp)

Definition at line 40 of file Socket.cpp.

◆ SOCKET_TYPE

#define SOCKET_TYPE   int

Definition at line 36 of file Socket.cpp.

Function Documentation

◆ IMPLEMENT_CLASSINFO()

__DCL_BEGIN_NAMESPACE IMPLEMENT_CLASSINFO ( Socket ,
PollAble  )

Definition at line 46 of file Socket.cpp.

49{
50 StringBuilder r = className();
51 if (__handle == INVALID_HANDLE_VALUE)
52 r += __T(" closed");
53 else {
54 if (!__path.isEmpty()) {
55 r += __T(" local ");
56 r += __path;
57 }
58
59 Addr addr;
60 socklen_t n = sizeof(addr);
61 if (!::getpeername((SOCKET_TYPE) __handle, (struct sockaddr*) &addr, &n)) {
62 String foreign = addr.toString();
63 if (!foreign.isEmpty()) {
64 if (!__path.isEmpty())
65 r += __T(",");
66 r += __T(" foreign ") + foreign;
67 }
68 }
69 }
70
71 return r;
72}
73
74void Socket::open(const String& _addr, uint16_t _port)
76{
77 if (__handle != INVALID_HANDLE_VALUE)
78 close();
79
80 Addr addr(_addr, _port);
81 connect(addr);
82}
#define __DCL_THROWS1(e)
Definition Config.h:167
#define INVALID_HANDLE_VALUE
Definition Dir.cpp:31
#define __T(str)
Definition Object.h:44
ByteString r
void CharsetConvertException *size_t n
Definition SQLField.cpp:253
#define SOCKET_TYPE
Definition Socket.cpp:36