用node创建服务器getServer和postServer

思路:

	1、首先创建一个服务器,
	2、开启服务器侦听,创建端口号和IP地址
    3、req请求消息,res响应消息
    4、设置响应头,添加响应消息对象
    5、如果接收到的消息是图标,那么就直接结束响应当前消息
    6、侦听请求事件和end事件

getServer.js

var http=require("http");
var querystring=require("querystring");//这个模块可以将query格式字符串
// 创建服务,一旦客户端请求当前这个node服务时,就会执行listenerHandler函数
var server=http.createServer(listenerHandler);
// 侦听开启服务器,设定开启的服务器端口号和ip,已经开启后执行的函数
server.listen(4001,"10.9.72.229",listenerDoneHandler);//在这里将端口号和IP地址修改成自己的

// 并且传入参数req,res,req是请求(客户端发来的),res是响应(当前服务端发回给客户端的)
function listenerHandler(req,res){
    res.writeHead(200,{//响应头。200代表返回成功,后面跟的是对象
        "content-type":"text/html;charset=utf-8"//规定返回的格式
    })
    // 判断发来的地址中是否有图标文件,如果有,直接结束响应当前消息,并且跳出不继续执行
    if(req.url.includes("/favicon.ico")){
        res.end();//这个end必须要写,不写的话就会挂起,不再继续往下执行,返回一个空的消息,证明是已经结束了
        return;
    }
    // ?a=1&b=2&c=3   {a:1,b:2,c:3}
    console.log(req.url);//打印请求的地址
    var o=querystring.parse(req.url.split("?")[1]);
    res.write("<div>"+o.user+"欢迎光临我的网站</div>");
    res.write("<ul>");
    for(var i=0;i<10;i++){
        res.write("<li>"+i+"</li>");
    }
    res.write("</ul>");
    res.end();//这个函数表示结束并返回一个消息,如果为空,那么就是返回
              //一个空消息,证明已经结束,然后继续向下执行,这个函数在这里
               // 表示把write 的东西全部发送出去
    // res.end(内容) 仅响应一个消息内容,并且结束
    // res.write(内容1);
    // res.write(内容2);
    // res.write(内容3);
    // ...
    // res.end()将上面所有write的内容一起响应发送。并且结束
}

function listenerDoneHandler(){
    console.log("开启服务了");
}

postServer

var http=require("http");//引入HTTP,在任何地方都可以引入,可以进行HTTP的通信服务,HTTPS是加密的,但是要钱
var querystring=require("querystring");
var server=http.createServer(function(req,res){//pos并不发送url,而是通过数据新发来发送的
    var data="";
    res.writeHead(200,{//响应头
        "content-type":"text/html;charset=utf-8"
    })
    if(req.url.includes("/favicon.ico")){
        res.end();
        return;
    }
    req.on("data",function(_data){//侦听事件,当你发我消息,我来侦听的一个过程
        data+=_data;//因为上面定义的data为空字符串,所以_data会隐式转换成字符串,在这里可以查看发送过来的消息是啥样的
    });
    req.on("end",function(){//侦听事件,接收完消息 
        var o=querystring.parse(data);
        res.write("<div>"+o.user+"欢迎光临我的网站</div>");
        res.write("<ul>");
        for(var i=0;i<10;i++){
            res.write("<li>"+i+"</li>");
        }
        res.write("</ul>");
        res.end();//当接收完消息,立马返回一个end
    })
});
server.listen(4002,"10.9.72.229",function(){//这里不能同时占用同一个端口,所以这里换一个端口
    console.log("开启服务");
})
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: lwIP(轻量级IP协议栈)是一个用于嵌入式系统的开源TCP/IP协议栈。在lwIP中,我们可以使用DHCP(动态主机配置协议)来获取DNS(域名系统)服务器的地址。 要使用DHCP获取DNS服务器的地址,我们需要进行以下步骤: 1. 初始化lwIP协议栈: 首先,我们需要在嵌入式设备中初始化lwIP协议栈。这可以通过调用lwIP提供的初始化函数来完成。 2. 设置网络接口: 在初始化lwIP协议栈之后,我们需要设置网络接口,这可以通过调用lwIP提供的接口函数来完成。在设置网络接口时,我们可以指定使用DHCP作为IP地址和DNS服务器的配置方式。 3. 启用DHCP客户端: 接下来,我们需要启用lwIP中的DHCP客户端。这可以通过调用lwIP提供的DHCP客户端函数来完成。 4. 获取DNS服务器地址: 一旦DHCP客户端启用成功,在lwIP中,它将自动与DHCP服务器进行通信,获取分配给设备的IP地址、子网掩码和DNS服务器地址等网络配置信息。我们可以通过访问lwIP中的相应数据结构来获取DNS服务器的地址。 5. 使用DNS服务器: 在获取到DNS服务器地址之后,我们就可以将其用于设备的DNS解析了。lwIP提供了DNS客户端函数,我们可以使用这些函数向DNS服务器发送解析请求,并获得相应的IP地址。 需要注意的是,以上步骤是基于lwIP协议栈的一般用法。具体使用方法可能因不同的应用需求和设备平台而有所不同,因此在实际应用中,可能需要查阅lwIP的文档和示例代码来进一步了解和使用特定的函数和配置选项。 ### 回答2: 在使用lwIP库进行网络开发时,可以通过Dynamic Host Configuration Protocol(DHCP)来获取DNS服务器。下面是一些使用lwIP库获取DNS服务器的步骤: 1. 首先,确保lwIP库已经正确地配置和初始化。可以包括在系统中包含lwIP库并进行相应的初始化函数调用。 2. 在代码中,使用lwIP的API函数来启用DHCP功能。一般情况下,可以使用以下代码片段来启用DHCP: ``` dhcpc_start(netif); ``` 这将在指定的网络接口(netif)上启动DHCP客户端。 3. 当DHCP客户端成功获取到IP地址时,可以通过以下代码来获取DNS服务器的配置信息: ``` dns_getserver(num_dns, &ip_addr); ``` 这将返回第num_dns个DNS服务器的IP地址,存储在`ip_addr`变量中。 4. 接下来,可以使用lwIP的其他相关API函数来处理和使用所获取的DNS服务器IP地址。这可能包括将其设置为系统的默认DNS服务器,或使用它进行DNS查询等。 请注意,上述步骤仅为获取DNS服务器的基本过程。在实际使用中,可能还需要处理一些错误情况、超时和其他特定的要求,以确保正常地获取到DNS服务器的IP地址。 ### 回答3: 在LWIP中,要使用DHCP获取DNS服务器,可以按照以下步骤进行操作: 1. 首先,配置LWIP库以使用DHCP。这可以通过在lwipopts.h文件中设置LWIP_DHCP为1来完成。这将启用LWIP库中的DHCP功能。 2. 接下来,在主应用程序的初始化代码中,创建一个与LWIP库关联的网络接口。可以使用函数netif_add()来完成这一操作。确保在调用netif_add()之前设置好LWIP库的ip、netmask和gateway。 3. 在网络接口关联后,可以注册一个回调函数来处理DHCP过程中的事件。可以使用函数dhcp_start()来启动DHCP过程,并将回调函数注册到网络接口。回调函数将在DHCP过程中触发不同的事件,例如IP地址和DNS服务器地址的获取。 4. 在回调函数中,可以使用netif_ip_addr_get()函数来获取分配给设备的IP地址。类似地,可以使用dhcp_supplied_dns()函数来获取DHCP服务器提供的DNS服务器地址。将这些地址存储在适当的变量中,以便在需要时使用。 5. 最后,在应用程序的其他部分中,可以使用存储的DNS服务器地址来配置设备或执行其他与网络通信相关的任务。 需要注意的是,DHCP过程可能需要一些时间来完成,因此在操作DNS服务器之前,确保DHCP过程已经完成并且DNS服务器地址已经获取。 以上是使用LWIP库通过DHCP获取DNS服务器的基本步骤。根据具体的应用需求和网络环境,还可以进一步配置其他参数和处理其他事件。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值