skills/computer-science/cs-networks/SKILL.md
Networks: TCP/IP, HTTP/2/3, TLS 1.3, DNS, BGP, WebSockets, QUIC, socket programming
npx skillsauth add alphaonedev/openclaw-graph cs-networksInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill equips the AI to handle computer network protocols and programming, focusing on TCP/IP, HTTP/2/3, TLS 1.3, DNS, BGP, WebSockets, QUIC, and socket operations for building, debugging, and securing networked applications.
Use this skill for tasks involving network communication, such as establishing connections in distributed systems, troubleshooting protocol issues (e.g., HTTP timeouts), implementing secure data transfer with TLS, or optimizing performance with QUIC in web apps. Apply it when code requires socket programming or protocol-specific handling, like DNS resolution in IoT devices.
To use this skill, integrate it into code by importing relevant libraries (e.g., Python's socket or requests). Start with initializing connections, then handle data exchange in loops, and finally clean up resources. For HTTP operations, use asynchronous patterns to avoid blocking. Always check for authentication requirements early, like setting $API_KEY for external APIs. Pattern: Import module -> Configure options (e.g., timeouts) -> Execute operation -> Handle response or errors.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('example.com', 80))
import requests
response = requests.get('https://api.example.com/data', headers={'Authorization': f'Bearer {os.environ.get("API_KEY")}'})
import socket
address = socket.gethostbyname('example.com')
print(address) # e.g., '93.184.216.34'
openssl s_client -connect example.com:443 -tls1_3 to verify TLS 1.3 handshake.import websockets
async with websockets.connect('ws://example.com/ws') as websocket:
await websocket.send('Hello')
curl --http3 https://example.com -H 'Authorization: Bearer $QUIC_API_KEY' (ensure QUIC support in curl version).bgpq3 -A AS1234 -l myprefix to fetch prefixes for an AS number.Integrate this skill by wrapping network operations in functions or classes for modularity. For authenticated APIs, set environment variables like export API_KEY=your_secret_key and access via os.environ.get('API_KEY') in Python. Handle TLS by specifying CA bundles, e.g., in requests: requests.get(url, verify='/path/to/ca.crt'). For QUIC, ensure the environment supports UDP (e.g., no firewalls blocking port 443). Config formats: Use JSON for API configs, e.g., {"host": "example.com", "port": 443, "tls": true}. Avoid hardcoding keys; use vaults or env vars for security.
Always wrap network operations in try-except blocks to catch exceptions. For sockets, check specific errors:
import socket
try:
s.connect(('example.com', 80))
except socket.error as e:
if e.errno == socket.errno.ECONNREFUSED:
print("Connection refused; check server status")
elif e.errno == socket.errno.ETIMEDOUT:
print("Timeout; retry with exponential backoff")
For HTTP, handle status codes: if response.status_code == 401, prompt for $API_KEY refresh. In QUIC/HTTP/3, watch for h3 errors like stream resets. Implement retries with limits, e.g., using tenacity: @retry(stop=stop_after_attempt(3), wait=wait_exponential_multiplier(1)) def fetch_data(): .... Log errors with details like errno for debugging.
Example: Implement a Simple TCP Client
To send data over TCP, use this code:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 8080))
s.sendall(b'Hello, server')
response = s.recv(1024)
s.close()
This connects to a local server, sends a message, and receives a response. Use it for testing network apps; ensure the server is running on port 8080.
Example: Secure HTTP Request with TLS
To fetch data from a TLS-protected endpoint:
import requests
headers = {'Authorization': f'Bearer {os.environ.get("API_KEY")}'}
response = requests.get('https://api.example.com/data', headers=headers, verify=True)
if response.ok:
print(response.json())
This retrieves JSON data while enforcing TLS verification. Set $API_KEY in your environment before running, and handle 4xx/5xx errors as shown in Error Handling.
tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui