|
|
# TermTCP CLI - Quick Start
|
|
|
|
|
|
## 60 Second Setup
|
|
|
|
|
|
### 1. Compile (30 seconds)
|
|
|
```bash
|
|
|
cd termtcp_cli
|
|
|
make -f Makefile_CLI
|
|
|
```
|
|
|
|
|
|
### 2. Run (5 seconds)
|
|
|
```bash
|
|
|
./termtcp
|
|
|
```
|
|
|
|
|
|
### 3. Connect (25 seconds)
|
|
|
```
|
|
|
> list # See available hosts
|
|
|
> connect 0 # Connect to first host
|
|
|
> Hello from TermTCP! # Send a message
|
|
|
> disconnect # Close connection
|
|
|
> quit # Exit
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## What You Get
|
|
|
|
|
|
✅ Lightweight TCP terminal client
|
|
|
✅ No GUI dependencies (CLI only)
|
|
|
✅ Multiple host configuration
|
|
|
✅ Session logging
|
|
|
✅ Color output
|
|
|
✅ ~400 lines of code
|
|
|
✅ Single file, no external libs
|
|
|
|
|
|
---
|
|
|
|
|
|
## First Steps
|
|
|
|
|
|
### 1. Build
|
|
|
```bash
|
|
|
make -f Makefile_CLI
|
|
|
./termtcp
|
|
|
```
|
|
|
|
|
|
First run creates: `~/.termtcprc`
|
|
|
|
|
|
### 2. Configure Hosts
|
|
|
Edit `~/.termtcprc`:
|
|
|
```
|
|
|
# Your hosts here
|
|
|
localhost 8011 My Local System
|
|
|
example.com 9000 Remote Server
|
|
|
```
|
|
|
|
|
|
### 3. Use It
|
|
|
```
|
|
|
> list # Show hosts
|
|
|
> connect 0 # Connect
|
|
|
> Type anything # Send to server
|
|
|
> disconnect # Close connection
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Common Commands
|
|
|
|
|
|
```
|
|
|
connect [0-4] Connect to host 0-4
|
|
|
disconnect Disconnect
|
|
|
list Show configured hosts
|
|
|
log on/off Enable/disable logging
|
|
|
color on/off Enable/disable colors
|
|
|
status Show connection status
|
|
|
help Show command help
|
|
|
quit Exit program
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Command-Line Usage
|
|
|
|
|
|
```bash
|
|
|
# Auto-connect to host 0
|
|
|
termtcp -c 0
|
|
|
|
|
|
# Auto-connect with logging
|
|
|
termtcp -c 0 -l
|
|
|
|
|
|
# Disable colors
|
|
|
termtcp -n
|
|
|
|
|
|
# Show help
|
|
|
termtcp -h
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## File Locations
|
|
|
|
|
|
| File | Purpose |
|
|
|
|------|---------|
|
|
|
| `~/.termtcprc` | Host configuration |
|
|
|
| `hostname_port_*.log` | Session logs (if enabled) |
|
|
|
|
|
|
---
|
|
|
|
|
|
## Building
|
|
|
|
|
|
### Requirements
|
|
|
- GCC/Clang
|
|
|
- Linux/macOS/BSD
|
|
|
|
|
|
### Commands
|
|
|
```bash
|
|
|
make -f Makefile_CLI # Build
|
|
|
make -f Makefile_CLI run # Build & run
|
|
|
make -f Makefile_CLI debug # Debug build
|
|
|
make -f Makefile_CLI clean # Clean
|
|
|
make -f Makefile_CLI install # Install
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Troubleshooting
|
|
|
|
|
|
| Problem | Solution |
|
|
|
|---------|----------|
|
|
|
| "Connection refused" | Check host/port in config |
|
|
|
| "Connection timeout" | Server might be down |
|
|
|
| Terminal frozen | Press Ctrl+C or type quit |
|
|
|
| Colors look wrong | Try `color off` |
|
|
|
| Can't find hosts | Check `~/.termtcprc` format |
|
|
|
|
|
|
---
|
|
|
|
|
|
## Configuration Format
|
|
|
|
|
|
File: `~/.termtcprc`
|
|
|
|
|
|
```
|
|
|
# Comments start with #
|
|
|
# Format: host port name
|
|
|
|
|
|
localhost 8011 My System
|
|
|
example.com 9000 Remote
|
|
|
```
|
|
|
|
|
|
That's it! No quotes needed.
|
|
|
|
|
|
---
|
|
|
|
|
|
## Real-World Examples
|
|
|
|
|
|
### Connect to BBS
|
|
|
```bash
|
|
|
# In ~/.termtcprc:
|
|
|
bbs.example.net 9000 Classic BBS
|
|
|
|
|
|
# Then:
|
|
|
termtcp
|
|
|
> connect 0
|
|
|
> help (usually gets you started)
|
|
|
```
|
|
|
|
|
|
### Check Remote System
|
|
|
```bash
|
|
|
termtcp -c 0
|
|
|
> QUERY
|
|
|
> STATUS
|
|
|
> quit
|
|
|
```
|
|
|
|
|
|
### Debug Connection Issues
|
|
|
```bash
|
|
|
termtcp -c 0 -l
|
|
|
> [try to do something]
|
|
|
# Check the log file created
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Keyboard Shortcuts
|
|
|
|
|
|
```
|
|
|
Ctrl+C Exit immediately
|
|
|
Enter Send line to server
|
|
|
/command Use / prefix for commands
|
|
|
```
|
|
|
|
|
|
Wait, that last one isn't real. Just type commands normally:
|
|
|
```
|
|
|
help (actual command)
|
|
|
/help (NOT needed)
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Features at a Glance
|
|
|
|
|
|
✅ Connect to TCP servers
|
|
|
✅ Send/receive text
|
|
|
✅ Multiple host profiles
|
|
|
✅ Automatic session logging
|
|
|
✅ Colored output (optional)
|
|
|
✅ Configuration file support
|
|
|
✅ Command system
|
|
|
✅ Status display
|
|
|
|
|
|
---
|
|
|
|
|
|
## Program Flow
|
|
|
|
|
|
```
|
|
|
Start
|
|
|
↓
|
|
|
Load ~/.termtcprc
|
|
|
↓
|
|
|
Show prompt
|
|
|
↓
|
|
|
User enters command
|
|
|
├─ "connect" → Connect to server
|
|
|
├─ "send data" → Send to server
|
|
|
├─ "log" → Start/stop logging
|
|
|
└─ "quit" → Exit
|
|
|
↓
|
|
|
Repeat until quit
|
|
|
↓
|
|
|
Cleanup & exit
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Comparing CLI to GTK3 Version
|
|
|
|
|
|
**Use CLI when:**
|
|
|
- No GUI environment
|
|
|
- Lightweight needed
|
|
|
- Scripting/automation
|
|
|
- Remote connection
|
|
|
- Simple connectivity
|
|
|
|
|
|
**Use GTK3 when:**
|
|
|
- Visual interface needed
|
|
|
- Multiple simultaneous connections
|
|
|
- Port monitoring required
|
|
|
- Desktop environment available
|
|
|
|
|
|
---
|
|
|
|
|
|
## Tips & Tricks
|
|
|
|
|
|
### Auto-connect on startup
|
|
|
```bash
|
|
|
termtcp -c 0 # Connects to host 0
|
|
|
```
|
|
|
|
|
|
### Log everything
|
|
|
```bash
|
|
|
termtcp -c 0 -l # Connects and starts logging
|
|
|
```
|
|
|
|
|
|
### Script with pipes
|
|
|
```bash
|
|
|
echo "QUERY" | termtcp -c 0
|
|
|
```
|
|
|
|
|
|
### Create alias
|
|
|
```bash
|
|
|
# In ~/.bashrc:
|
|
|
alias mybbс='termtcp -c 0'
|
|
|
|
|
|
# Then just:
|
|
|
mybbs
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Logging Details
|
|
|
|
|
|
When `log on` is enabled:
|
|
|
|
|
|
- File created: `hostname_port_YYYYMMDD_HHMMSS.log`
|
|
|
- Contains: All sent/received data with timestamps
|
|
|
- Format: `[HH:MM:SS] SEND/RECV: data`
|
|
|
- Location: Current working directory
|
|
|
|
|
|
Example:
|
|
|
```
|
|
|
[14:35:22] SEND: HELLO
|
|
|
[14:35:23] RECV: Welcome!
|
|
|
[14:35:24] SEND: QUERY
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Performance
|
|
|
|
|
|
| Metric | Value |
|
|
|
|--------|-------|
|
|
|
| Binary Size | ~40KB |
|
|
|
| Memory Usage | ~50KB |
|
|
|
| Startup Time | <100ms |
|
|
|
| CPU Usage | Minimal |
|
|
|
| Max Line | 512 chars |
|
|
|
|
|
|
---
|
|
|
|
|
|
## Getting Help
|
|
|
|
|
|
In the program:
|
|
|
```
|
|
|
> help # Show commands
|
|
|
> status # Show connection status
|
|
|
> list # Show configured hosts
|
|
|
```
|
|
|
|
|
|
In the shell:
|
|
|
```bash
|
|
|
termtcp -h # Show options
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## Next Steps
|
|
|
|
|
|
1. ✅ Build: `make -f Makefile_CLI`
|
|
|
2. ✅ Run: `./termtcp`
|
|
|
3. ✅ Configure: Edit `~/.termtcprc`
|
|
|
4. ✅ Connect: Type `connect 0`
|
|
|
5. ✅ Use: Send and receive data
|
|
|
6. ✅ Log: Enable with `log on` if needed
|
|
|
|
|
|
---
|
|
|
|
|
|
## Quick Reference Card
|
|
|
|
|
|
```
|
|
|
START: termtcp
|
|
|
SHOW HELP: help
|
|
|
LIST HOSTS: list
|
|
|
CONNECT: connect 0
|
|
|
SEND: type anything
|
|
|
LOG ON: log on
|
|
|
LOG OFF: log off
|
|
|
COLORS ON: color on
|
|
|
COLORS OFF: color off
|
|
|
STATUS: status
|
|
|
EXIT: quit
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
**You're ready!** Run `make -f Makefile_CLI && ./termtcp` 🚀
|
|
|
|
|
|
For more details, see: README_CLI.md
|