在Ubuntu上进行JavaScript网络编程,你可以使用Node.js这个流行的JavaScript运行环境。Node.js提供了许多内置模块,可以用来进行网络编程,比如HTTP、TCP、UDP和DNS等。
以下是一些基本的网络编程示例:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
将上述代码保存为server.js,然后在终端中运行node server.js。之后,你可以在浏览器中访问http://localhost:3000/来看到输出。
const net = require('net');
const server = net.createServer((socket) => {
console.log('Client connected');
socket.write('Hello from the server!\n');
socket.on('data', (data) => {
console.log(`Received data: ${data}`);
socket.write(`Server received: ${data}`);
});
socket.on('close', () => {
console.log('Client disconnected');
});
});
server.listen(3001, () => {
console.log('Server listening on port 3001');
});
将上述代码保存为tcp_server.js,然后在终端中运行node tcp_server.js。你可以使用telnet或nc(netcat)工具连接到服务器的3001端口来测试。
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('listening', () => {
const address = server.address();
console.log(`UDP Server listening on ${address.address}:${address.port}`);
});
server.on('message', (msg, rinfo) => {
console.log(`Server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
server.send(`Hello ${rinfo.address}`, rinfo.port);
});
server.bind(3002);
将上述代码保存为udp_server.js,然后在终端中运行node udp_server.js。你可以使用nc -u命令发送UDP数据包到服务器的3002端口来测试。
这些是Node.js中进行网络编程的基础。根据你的需求,你可以使用这些模块构建更复杂的网络应用程序。此外,还有第三方库如Express.js可以帮助你更方便地创建HTTP服务器和处理路由。