psocket 1.1.4
The cross-platform tool to work with remote connection using sockets
License: MIT
Requires Python: >=3.6

[![PyPI version](https://badge.fury.io/py/psocket.svg)](https://badge.fury.io/py/psocket)
[![Build Status](https://travis-ci.org/c-pher/PSocket.svg?branch=master)](https://travis-ci.org/c-pher/PSocket)
[![Coverage Status](https://coveralls.io/repos/github/c-pher/PSocket/badge.svg?branch=master)](https://coveralls.io/github/c-pher/PSocket?branch=master)


# PSocket
The cross-platform simple tool to work with remote server through sockets. 
It can establish socket connection to a remote host:port, send commands and receive response.
No need to send byte-string. Use usual strings to send command.

## Installation
For most users, the recommended method to install is via pip:
```cmd
pip install psocket
```

or from source:

```cmd
python setup.py install
```

## Import
```python
from psocket import SocketClient
```
---
## Usage
```python
from psocket import SocketClient

client = SocketClient(host='172.16.0.48', port=3261)
print(client)
```
```python
from psocket import SocketClient

client = SocketClient(host='172.16.0.48', port=3261, initialize=True)
print(client.send_command('<commands>'))
```

---

## Changelog

##### 1.1.4 (29.05.2023)

- debug log extended with timeout error
- global timeout management added

##### 1.1.3 (26.05.2023)

- Reading completion from the socket fixed
- buffer size reduced to 4k
- Logger extended
- Refactoring

##### 1.1.2 (25.05.2023)

- buffer size increased to 8k
- debug log added

##### 1.1.1 (04.08.2022)

- Detect command is completed by \n\n

##### 1.1.0 (23.07.2022)

- log format changed

##### 1.0.9 (4.06.2022)

- response now split lines (instead of .split('\n'))
- logger now is static `SocketClient`
- "greeting" class attr added
- minor changes in logging format
- socket timeout log level changed from debug to warning

##### 1.0.8 (22.04.2022)

- Set blocking after command send with it

##### 1.0.7 (18.04.2022)

- ._socket_response() renamed to ._receive_all() and changed to read huge amount of data from socket
- buffer size changed to 4k (instead of 64k)
- .send_command() extended with "timeout=None" param

##### 1.0.6 (17.04.2022)

- refactored to manage logger state

##### 1.0.5 (6.04.2022)

- logger moved inside class as attr in order to get access to it from outside
- unknown attr access handling added
-

##### 1.0.4 (14.06.2021)

Added host address logging

##### 1.0.3 (12.03.2021)

- Added ability to disable logs
- "timeout connection" added as parameter with None default value

##### 1.0.2 (15.01.2020)

Added "initialize" param to the constructor

##### 1.0.1 (15.01.2020)

- "is_host_available()" renamed to "is_socket_available()" and updated
- used external logger from "plogger" package

##### 1.0.0a4 (15.01.2020)
- added init docstring
- init notation changed:
  - host is string
  - port is integer

##### 1.0.0a3 (14.01.2020)
- removed timeout from socket connection
- greeting and socket_response now are private methods

##### 1.0.0a2 (13.01.2020)
Reverted "client". Now it is an attribute again to keep session alive 

##### 1.0.0a1 (13.01.2020)
- Now connection creates with client property
- New methods added:
    - is_host_available() 
    - get_sock_name()
    - get_peer_name()

##### 1.0.0a0 (13.01.2020)
- initial commit