今天,我学习了nodejs里面的网络编程,主要是TCP,UDP,HTTP相关知识。
TCP
tcp全名是传输控制协议,是面向连接的一种协议。有着经典的三次握手。
下面是一个tcp服务器:
var net = require('net');
var server = net.createServer(function(socket) {
socket.on('data', function(data) {
socket.write('hello');
});
socket.on('end', function() {
console.log('end');
});
})
//监听端口
server.listen(1234, function() {
console.log('listening....');
});
tcp服务器就这么简单!当然啦,我们可以用另一种方式创建服务器。
var server = net.createServer();
server.on('connection', function(socket){
//socket.on()......
});
换了形式,但结果是一样的。
然后,我们可以用客户端去连接。
var net = require('net');
var client = net.connect({port:3000}, function() {
//TODO
});
client.on('data', function(data) {
//TODO
});
.......
好吧,完了。。。。
--------------------------------------------以上是TCP----------------------------------------------
UDP
udp,大家都懂的,用户数据报协议。与tcp同属网络传输层。
服务器代码如下:
var dgram = require('dgram');
var server = dgram.createSocket('udp4');
server.on('message', function(msg, rinfo) {
console.log('server got '+msg +'from '+rinfo.address +':' +rinfo.port);
});
//开始侦听时触发事件
server.on('listening', function() {
var address = server.address();
console.log('server listening' + address.address+' : '+address.port);
});
server.bind(41234);
客户端程序:
var dgram = require('dgram');
var message = new Buffer('你好,nodejs');
var client = dgram.createSocket('udp4');
client.send(message, 0, message.length, 41234, 'localhost', function() {
client.close();
});
写完了。。。
-------------------------------以上是UDP----------------------------------------
HTTP
好像没什么好写的。好吧,是我太懒了。。。。有时间补上。
--------------------------------END---------------------------------------