---
name: "ost_TCPSession"
section: "3"
platform: "linux"
package: "libcommoncpp2-doc"
version: "1.8.1-10"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/ost_TCPSession"
---

# ost\_TCPSession(3)

The TCP session is used to primarily to represent a client connection that can be managed on a separate thread.

## NAME

ost::TCPSession - The TCP session is used to primarily to represent a client connection that can be managed on a separate thread.

## SYNOPSIS

`#include <socket.h>`

Inherits **ost::Thread**, and **ost::TCPStream**.

### Public Member Functions

**TCPSession** (const **IPV4Host** &host, **tpport\_t** port, size\_t size=536, int pri=0, size\_t stack=0)\
 Create a TCP socket that will be connected to a remote TCP server and that will execute under it's own thread.  **TCPSession** (const **IPV6Host** &host, **tpport\_t** port, size\_t size=536, int pri=0, size\_t stack=0)\
 **TCPSession** (**TCPSocket** &server, int pri=0, size\_t stack=0)\
 Create a TCP socket from a bound TCP server by accepting a pending connection from that server and execute a thread for the accepted connection.  **TCPSession** (**TCPV6Socket** &server, int pri=0, size\_t stack=0)\
 virtual **~TCPSession** ()\
 Make sure destruction happens through a virtual...

### Protected Member Functions

int **waitConnection** (**timeout\_t** **timeout**=**TIMEOUT\_INF**)\
 Normally called during the thread Initial() method by default, this will wait for the socket connection to complete when connecting to a remote socket.  void **initial** (void)\
 The initial method is used to esablish a connection when delayed completion is used.

### Additional Inherited Members

## Detailed Description

The TCP session is used to primarily to represent a client connection that can be managed on a separate thread.

The TCP session also supports a non-blocking connection scheme which prevents blocking during the constructor and moving the process of completing a connection into the thread that executes for the session.

**Author**

David Sugar dyfet@ostel.com

Threaded streamable socket with non-blocking constructor.

**Examples** **tcpthread.cpp**.

## Constructor & Destructor Documentation

### ost::TCPSession::TCPSession (const IPV4Host & host, tpport\_t port, size\_t size = `536`, int pri = `0`, size\_t stack = `0`)

Create a TCP socket that will be connected to a remote TCP server and that will execute under it's own thread.

**Parameters**

*host* internet address of remote TCP server. \
 *port* number of remote server. \
 *size* of streaming buffer. \
 *pri* execution priority relative to parent. \
 *stack* allocation needed on some platforms.

### ost::TCPSession::TCPSession (const IPV6Host & host, tpport\_t port, size\_t size = `536`, int pri = `0`, size\_t stack = `0`)

### ost::TCPSession::TCPSession (TCPSocket & server, int pri = `0`, size\_t stack = `0`)

Create a TCP socket from a bound TCP server by accepting a pending connection from that server and execute a thread for the accepted connection.

**Parameters**

*server* tcp socket to accept a connection from. \
 *pri* execution priority relative to parent. \
 *stack* allocation needed on some platforms.

### ost::TCPSession::TCPSession (TCPV6Socket & server, int pri = `0`, size\_t stack = `0`)

### virtual ost::TCPSession::~TCPSession ()` [virtual]`

Make sure destruction happens through a virtual...

## Member Function Documentation

### void ost::TCPSession::initial (void)` [protected]`, ` [virtual]`

The initial method is used to esablish a connection when delayed completion is used. This assures the constructor terminates without having to wait for a connection request to complete.

Reimplemented from **ost::Thread**.

### int ost::TCPSession::waitConnection (timeout\_t timeout = TIMEOUT\_INF)` [protected]`

Normally called during the thread Initial() method by default, this will wait for the socket connection to complete when connecting to a remote socket. One might wish to use **setCompletion()** to change the socket back to blocking I/O calls after the connection completes. To implement the session one must create a derived class which implements **run()**.

**Returns**

0 if successful, -1 if timed out.

**Parameters**

*timeout* to wait for completion in milliseconds.

## Author

Generated automatically by Doxygen for GNU CommonC++ from the source code.
