File: Poco.Net.StreamSocket.html

package info (click to toggle)
poco-doc 1.3.6-1
  • links: PTS
  • area: main
  • in suites: buster, jessie, jessie-kfreebsd, squeeze, stretch, wheezy
  • size: 10,076 kB
  • ctags: 9,611
  • sloc: makefile: 31
file content (134 lines) | stat: -rw-r--r-- 15,227 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Class Poco::Net::StreamSocket</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta name="author" content="Applied Informatics Software Engineering GmbH and Contributors"/>
<meta name="publisher" content="Applied Informatics Software Engineering GmbH and Contributors"/>
<meta name="copyright" content="Copyright (c) 2009, Applied Informatics Software Engineering GmbH and Contributors"/>
<meta name="language" content="en"/>
<meta name="date" content="2009-11-24"/>
<meta name="generator" content="PocoDoc"/>
<link rel="stylesheet" href="css/styles.css" type="text/css"/>
</head>
<body bgcolor="#ffffff" leftmargin="0" topmargin="0">
<div class="header">
<h1 class="namespace"><a href="Poco.Net.html" class="namespace">Poco::Net</a></h1>
<h1 class="symbol">class StreamSocket</h1>
</div>
<div class="body">
<p>
<b>Library:</b> Net<br />
<b>Package:</b> Sockets<br />
<b>Header:</b> Poco/Net/StreamSocket.h</p>
<h2>Description</h2>
<div class="description">
<p>This class provides an interface to a TCP stream socket. </p>
</div>
<h2>Inheritance</h2>
<p><b>Direct Base Classes: </b><a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a></p>
<p><b>All Base Classes: </b><a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a></p>
<p><b>Known Derived Classes: </b><a href="Poco.Net.DialogSocket.html" title="class Poco::Net::DialogSocket">DialogSocket</a>, <a href="Poco.Net.SecureStreamSocket.html" title="class Poco::Net::SecureStreamSocket">SecureStreamSocket</a></p>
<h2>Member Summary</h2>
<p><b>Member Functions: </b><a href="Poco.Net.StreamSocket.html#15497" title="Poco::Net::StreamSocket::connect()">connect</a>, <a href="Poco.Net.StreamSocket.html#15502" title="Poco::Net::StreamSocket::connectNB()">connectNB</a>, <a href="Poco.Net.StreamSocket.html#15495" title="Poco::Net::StreamSocket::operator =()">operator&nbsp;=</a>, <a href="Poco.Net.StreamSocket.html#15511" title="Poco::Net::StreamSocket::receiveBytes()">receiveBytes</a>, <a href="Poco.Net.StreamSocket.html#15507" title="Poco::Net::StreamSocket::sendBytes()">sendBytes</a>, <a href="Poco.Net.StreamSocket.html#15515" title="Poco::Net::StreamSocket::sendUrgent()">sendUrgent</a>, <a href="Poco.Net.StreamSocket.html#15506" title="Poco::Net::StreamSocket::shutdown()">shutdown</a>, <a href="Poco.Net.StreamSocket.html#15504" title="Poco::Net::StreamSocket::shutdownReceive()">shutdownReceive</a>, <a href="Poco.Net.StreamSocket.html#15505" title="Poco::Net::StreamSocket::shutdownSend()">shutdownSend</a></p>
<p><b>Inherited Functions: </b><a href="Poco.Net.Socket.html#15077" title="Poco::Net::Socket::address()">address</a>, <a href="Poco.Net.Socket.html#15000" title="Poco::Net::Socket::available()">available</a>, <a href="Poco.Net.Socket.html#14991" title="Poco::Net::Socket::close()">close</a>, <a href="Poco.Net.Socket.html#15076" title="Poco::Net::Socket::getBlocking()">getBlocking</a>, <a href="Poco.Net.Socket.html#15064" title="Poco::Net::Socket::getKeepAlive()">getKeepAlive</a>, <a href="Poco.Net.Socket.html#15056" title="Poco::Net::Socket::getLinger()">getLinger</a>, <a href="Poco.Net.Socket.html#15061" title="Poco::Net::Socket::getNoDelay()">getNoDelay</a>, <a href="Poco.Net.Socket.html#15073" title="Poco::Net::Socket::getOOBInline()">getOOBInline</a>, <a href="Poco.Net.Socket.html#15033" title="Poco::Net::Socket::getOption()">getOption</a>, <a href="Poco.Net.Socket.html#15006" title="Poco::Net::Socket::getReceiveBufferSize()">getReceiveBufferSize</a>, <a href="Poco.Net.Socket.html#15012" title="Poco::Net::Socket::getReceiveTimeout()">getReceiveTimeout</a>, <a href="Poco.Net.Socket.html#15067" title="Poco::Net::Socket::getReuseAddress()">getReuseAddress</a>, <a href="Poco.Net.Socket.html#15070" title="Poco::Net::Socket::getReusePort()">getReusePort</a>, <a href="Poco.Net.Socket.html#15003" title="Poco::Net::Socket::getSendBufferSize()">getSendBufferSize</a>, <a href="Poco.Net.Socket.html#15009" title="Poco::Net::Socket::getSendTimeout()">getSendTimeout</a>, <a href="Poco.Net.Socket.html#15079" title="Poco::Net::Socket::impl()">impl</a>, <a href="Poco.Net.Socket.html#14981" title="Poco::Net::Socket::operator !=()">operator&nbsp;!=</a>, <a href="Poco.Net.Socket.html#14983" title="Poco::Net::Socket::operator <()">operator&nbsp;&lt;</a>, <a href="Poco.Net.Socket.html#14985" title="Poco::Net::Socket::operator <=()">operator&nbsp;&lt;=</a>, <a href="Poco.Net.Socket.html#14976" title="Poco::Net::Socket::operator =()">operator&nbsp;=</a>, <a href="Poco.Net.Socket.html#14979" title="Poco::Net::Socket::operator ==()">operator&nbsp;==</a>, <a href="Poco.Net.Socket.html#14987" title="Poco::Net::Socket::operator >()">operator&nbsp;&gt;</a>, <a href="Poco.Net.Socket.html#14989" title="Poco::Net::Socket::operator >=()">operator&nbsp;&gt;=</a>, <a href="Poco.Net.Socket.html#15078" title="Poco::Net::Socket::peerAddress()">peerAddress</a>, <a href="Poco.Net.Socket.html#14997" title="Poco::Net::Socket::poll()">poll</a>, <a href="Poco.Net.Socket.html#14992" title="Poco::Net::Socket::select()">select</a>, <a href="Poco.Net.Socket.html#15074" title="Poco::Net::Socket::setBlocking()">setBlocking</a>, <a href="Poco.Net.Socket.html#15062" title="Poco::Net::Socket::setKeepAlive()">setKeepAlive</a>, <a href="Poco.Net.Socket.html#15053" title="Poco::Net::Socket::setLinger()">setLinger</a>, <a href="Poco.Net.Socket.html#15059" title="Poco::Net::Socket::setNoDelay()">setNoDelay</a>, <a href="Poco.Net.Socket.html#15071" title="Poco::Net::Socket::setOOBInline()">setOOBInline</a>, <a href="Poco.Net.Socket.html#15013" title="Poco::Net::Socket::setOption()">setOption</a>, <a href="Poco.Net.Socket.html#15004" title="Poco::Net::Socket::setReceiveBufferSize()">setReceiveBufferSize</a>, <a href="Poco.Net.Socket.html#15010" title="Poco::Net::Socket::setReceiveTimeout()">setReceiveTimeout</a>, <a href="Poco.Net.Socket.html#15065" title="Poco::Net::Socket::setReuseAddress()">setReuseAddress</a>, <a href="Poco.Net.Socket.html#15068" title="Poco::Net::Socket::setReusePort()">setReusePort</a>, <a href="Poco.Net.Socket.html#15001" title="Poco::Net::Socket::setSendBufferSize()">setSendBufferSize</a>, <a href="Poco.Net.Socket.html#15007" title="Poco::Net::Socket::setSendTimeout()">setSendTimeout</a>, <a href="Poco.Net.Socket.html#15084" title="Poco::Net::Socket::sockfd()">sockfd</a>, <a href="Poco.Net.Socket.html#15080" title="Poco::Net::Socket::supportsIPv4()">supportsIPv4</a>, <a href="Poco.Net.Socket.html#15081" title="Poco::Net::Socket::supportsIPv6()">supportsIPv6</a></p>
<h2>Constructors</h2>
<h3><a name="15487">StreamSocket</a></h3>
<p class="decl"><a href="Poco.Net.StreamSocket.html" title="class Poco::Net::StreamSocket">StreamSocket</a>();</p>
<div class="description">
<p>Creates an unconnected stream socket. </p>
<p>Before sending or receiving data, the socket must be connected with a call to <a href="Poco.Net.StreamSocket.html#15497" title="Poco::Net::StreamSocket::connect()">connect</a>(). </p>
</div>
<h3><a name="15488">StreamSocket</a></h3>
<p class="decl">explicit <a href="Poco.Net.StreamSocket.html" title="class Poco::Net::StreamSocket">StreamSocket</a>(<br />&nbsp;&nbsp;&nbsp;&nbsp;const <a href="Poco.Net.SocketAddress.html" title="class Poco::Net::SocketAddress">SocketAddress</a> &amp; address<br />);</p>
<div class="description">
<p>Creates a stream socket and connects it to the socket specified by address. </p>
</div>
<h3><a name="15490">StreamSocket</a></h3>
<p class="decl">explicit <a href="Poco.Net.StreamSocket.html" title="class Poco::Net::StreamSocket">StreamSocket</a>(<br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="Poco.Net.IPAddress.html#13594" title="enum  Poco::Net::IPAddress::Family">IPAddress::Family</a> family<br />);</p>
<div class="description">
<p>Creates an unconnected stream socket for the given address family. </p>
<p>This is useful if certain socket options (like send and receive buffer) sizes, that must  be set before connecting the socket, will be set later on. </p>
</div>
<h3><a name="15492">StreamSocket</a></h3>
<p class="decl"><a href="Poco.Net.StreamSocket.html" title="class Poco::Net::StreamSocket">StreamSocket</a>(<br />&nbsp;&nbsp;&nbsp;&nbsp;const <a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a> &amp; socket<br />);</p>
<div class="description">
<p>Creates the <a href="Poco.Net.StreamSocket.html" title="class Poco::Net::StreamSocket">StreamSocket</a> with the <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> from another socket. The <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> must be a <a href="Poco.Net.StreamSocketImpl.html" title="class Poco::Net::StreamSocketImpl">StreamSocketImpl</a>, otherwise an <a href="Poco.InvalidArgumentException.html" title="class Poco::InvalidArgumentException">InvalidArgumentException</a> will be thrown. </p>
</div>
<h3><a name="15517">StreamSocket</a></h3>
<p class="decl"><a href="Poco.Net.StreamSocket.html" title="class Poco::Net::StreamSocket">StreamSocket</a>(<br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> * pImpl<br />);</p>
<div class="description">
<p>Creates the <a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a> and attaches the given <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a>. The socket takes owership of the <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a>. </p>
<p>The <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> must be a <a href="Poco.Net.StreamSocketImpl.html" title="class Poco::Net::StreamSocketImpl">StreamSocketImpl</a>, otherwise an <a href="Poco.InvalidArgumentException.html" title="class Poco::InvalidArgumentException">InvalidArgumentException</a> will be thrown. </p>
</div>
<h2>Destructor</h2>
<h3><a name="15494">~StreamSocket</a> <img src="images/virtual.gif" alt="virtual" title="virtual" style="vertical-align:baseline;" border="0" /> </h3>
<p class="decl">virtual ~<a href="Poco.Net.StreamSocket.html" title="class Poco::Net::StreamSocket">StreamSocket</a>();</p>
<div class="description">
<p>Destroys the <a href="Poco.Net.StreamSocket.html" title="class Poco::Net::StreamSocket">StreamSocket</a>. </p>
</div>
<h2>Member Functions</h2>
<h3><a name="15497">connect</a></h3>
<p class="decl">void connect(<br />&nbsp;&nbsp;&nbsp;&nbsp;const <a href="Poco.Net.SocketAddress.html" title="class Poco::Net::SocketAddress">SocketAddress</a> &amp; address<br />);</p>
<div class="description">
<p>Initializes the socket and establishes a connection to  the TCP server at the given address. </p>
<p>Can also be used for UDP sockets. In this case, no connection is established. Instead, incoming and outgoing packets are restricted to the specified address. </p>
</div>
<h3><a name="15499">connect</a></h3>
<p class="decl">void connect(<br />&nbsp;&nbsp;&nbsp;&nbsp;const <a href="Poco.Net.SocketAddress.html" title="class Poco::Net::SocketAddress">SocketAddress</a> &amp; address,<br />&nbsp;&nbsp;&nbsp;&nbsp;const <a href="Poco.Timespan.html" title="class Poco::Timespan">Poco::Timespan</a> &amp; timeout<br />);</p>
<div class="description">
<p>Initializes the socket, sets the socket timeout and  establishes a connection to the TCP server at the given address. </p>
</div>
<h3><a name="15502">connectNB</a></h3>
<p class="decl">void connectNB(<br />&nbsp;&nbsp;&nbsp;&nbsp;const <a href="Poco.Net.SocketAddress.html" title="class Poco::Net::SocketAddress">SocketAddress</a> &amp; address<br />);</p>
<div class="description">
<p>Initializes the socket and establishes a connection to  the TCP server at the given address. Prior to opening the connection the socket is set to nonblocking mode. </p>
</div>
<h3><a name="15495">operator =</a></h3>
<p class="decl"><a href="Poco.Net.StreamSocket.html" title="class Poco::Net::StreamSocket">StreamSocket</a> &amp; operator = (<br />&nbsp;&nbsp;&nbsp;&nbsp;const <a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a> &amp; socket<br />);</p>
<div class="description">
<p>Assignment operator. </p>
<p>Releases the socket's <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> and attaches the <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> from the other socket and increments the reference count of the <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a>.	 </p>
</div>
<h3><a name="15511">receiveBytes</a></h3>
<p class="decl">int receiveBytes(<br />&nbsp;&nbsp;&nbsp;&nbsp;void * buffer,<br />&nbsp;&nbsp;&nbsp;&nbsp;int length,<br />&nbsp;&nbsp;&nbsp;&nbsp;int flags = 0<br />);</p>
<div class="description">
<p>Receives data from the socket and stores it in buffer. Up to length bytes are received. </p>
<p>Returns the number of bytes received.  A return value of 0 means a graceful shutdown  of the connection from the peer. </p>
<p>Throws a <a href="Poco.TimeoutException.html" title="class Poco::TimeoutException">TimeoutException</a> if a receive timeout has been set and nothing is received within that interval. Throws a <a href="Poco.Net.NetException.html" title="class Poco::Net::NetException">NetException</a> (or a subclass) in case of other errors. </p>
</div>
<h3><a name="15507">sendBytes</a></h3>
<p class="decl">int sendBytes(<br />&nbsp;&nbsp;&nbsp;&nbsp;const void * buffer,<br />&nbsp;&nbsp;&nbsp;&nbsp;int length,<br />&nbsp;&nbsp;&nbsp;&nbsp;int flags = 0<br />);</p>
<div class="description">
<p>Sends the contents of the given buffer through the socket. </p>
<p>Returns the number of bytes sent, which may be less than the number of bytes specified. </p>
<p>Certain socket implementations may also return a negative value denoting a certain condition. </p>
</div>
<h3><a name="15515">sendUrgent</a></h3>
<p class="decl">void sendUrgent(<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned char data<br />);</p>
<div class="description">
<p>Sends one byte of urgent data through the socket. </p>
<p>The data is sent with the MSG_OOB flag. </p>
<p>The preferred way for a socket to receive urgent data is by enabling the SO_OOBINLINE option. </p>
</div>
<h3><a name="15506">shutdown</a></h3>
<p class="decl">void shutdown();</p>
<div class="description">
<p>Shuts down both the receiving and the sending part of the socket connection. </p>
</div>
<h3><a name="15504">shutdownReceive</a></h3>
<p class="decl">void shutdownReceive();</p>
<div class="description">
<p>Shuts down the receiving part of the socket connection. </p>
</div>
<h3><a name="15505">shutdownSend</a></h3>
<p class="decl">void shutdownSend();</p>
<div class="description">
<p>Shuts down the sending part of the socket connection. </p>
</div>
<p class="footer">POCO C++ Libraries 1.3.6-all<br />
Copyright &copy; 2009, <a href="http://pocoproject.org/" target="_blank">Applied Informatics Software Engineering GmbH and Contributors</a></p>

</div>
</body>
</html>