>> Technologie Électronique >  >> Téléphones >> Systèmes de conférence

Quel numéro de port utiliser pour du code client-serveur local sur la même machine ?

Lorsqu'on écrit un client et un serveur qui communiquent sur le même hôte, utilisez l'adresse de boucle locale (127.0.0.1 pour IPv4, ::1 pour IPv6) et choisissez n'importe quel port non privilégié (1024-65535) pas déjà utilisé.

Conventions courantes

  • Serveurs dev : 3000 (React, Express), 8000 (Django), 8080 (proxy), 5000 (Flask), 4200 (Angular), 5173 (Vite).
  • Bases de données : 5432 (PostgreSQL), 3306 (MySQL), 27017 (MongoDB), 6379 (Redis).
  • Apps perso : Choisissez un port haut aléatoire (ex. 12345, 54321) pour éviter collisions.

Extraits de code

Python (socket)

# server.py
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 12345)) # loopback + port
s.listen()
conn, addr = s.accept()
print(conn.recv(1024).decode())
conn.sendall(b'Pong')
conn.close()

# client.py
import socket
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.connect(('127.0.0.1', 12345))
c.sendall(b'Ping')
print(c.recv(1024).decode())
c.close()

Node.js (net)

// server.js
const net = require('net');
const server = net.createServer(socket => {
  socket.on('data', data => socket.write('Pong'));
}).listen(12345, '127.0.0.1');

// client.js
const net = require('net');
const client = net.connect({port: 12345, host: '127.0.0.1'}, () => {
  client.write('Ping');
});
client.on('data', data => console.log(data.toString()));

Points clés

  • 127.0.0.1 est une adresse IP, pas un port. Le port est le second argument (ex. 12345).
  • Lier à 0.0.0.0 expose le serveur au LAN – utilisez 127.0.0.1 pour local seulement.
  • Ports < 1024 nécessitent root/admin (privilégiés).
  • Vérifiez disponibilité : lsof -i :12345 (macOS/Linux) ou netstat -ano | findstr :12345 (Windows).
  • Pare-feu : autorise généralement loopback par défaut.

Choisissez un port libre >1023, liez à 127.0.0.1, et c'est parti.

Systèmes de conférence