DCL 3.7.4
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 48 of file Socket.cpp.

◆ closesocket

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

Definition at line 46 of file Socket.cpp.

◆ INVALID_HANDLE_VALUE

#define INVALID_HANDLE_VALUE   -1

Definition at line 44 of file Socket.cpp.

◆ INVALID_SOCKET

#define INVALID_SOCKET   -1

Definition at line 45 of file Socket.cpp.

◆ ioctlsocket

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

Definition at line 47 of file Socket.cpp.

◆ SOCKET_TYPE

#define SOCKET_TYPE   int

Definition at line 43 of file Socket.cpp.

Function Documentation

◆ IMPLEMENT_CLASSINFO()

__DCL_BEGIN_NAMESPACE IMPLEMENT_CLASSINFO ( Socket ,
PollAble  )

Definition at line 53 of file Socket.cpp.

56{
57 StringBuilder r = className();
58 if (__handle == INVALID_HANDLE_VALUE)
59 r += __T(" closed");
60 else {
61 if (!__path.isEmpty()) {
62 r += __T(" local ");
63 r += __path;
64 }
65
66 Addr addr;
67 socklen_t n = sizeof(addr);
68 if (!::getpeername((SOCKET_TYPE) __handle, (struct sockaddr*) &addr, &n)) {
69 String foreign = addr.toString();
70 if (!foreign.isEmpty()) {
71 if (!__path.isEmpty())
72 r += __T(",");
73 r += __T(" foreign ") + foreign;
74 }
75 }
76 }
77
78 return r;
79}
80
81void Socket::open(const String& _addr, uint16_t _port)
83{
84 if (__handle != INVALID_HANDLE_VALUE)
85 close();
86
87 Addr addr(_addr, _port);
88 connect(addr);
89}
#define __DCL_THROWS1(e)
Definition Config.h:152
#define INVALID_HANDLE_VALUE
Definition Dir.cpp:34
IOException *size_t r
Definition MediaInfo.cpp:82
#define __T(str)
Definition Object.h:60
#define SOCKET_TYPE
Definition Socket.cpp:43