&& takes precedence over ||

There was
```
if (m_options.ReceiveBuffer > 0 && m_pgmSocketType == PgmSocketType.Receiver
    || m_pgmSocketType == PgmSocketType.Listener)
```

which is equivalent to

```
if ((m_options.ReceiveBuffer > 0 && m_pgmSocketType == PgmSocketType.Receiver)
    || m_pgmSocketType == PgmSocketType.Listener)
```

but I think you want

```
if (m_options.ReceiveBuffer > 0 && (m_pgmSocketType == PgmSocketType.Receiver
    || m_pgmSocketType == PgmSocketType.Listener))
```