我有一个带有两个物理接口的 linux 系统。我需要通过一个接口拦截(读取)传入的数据包,读取(或处理)数据并按原样通过另一个接口将其发送出去 - 就像中间人一样。我能够从数据包中提取所有标头字段和有效载荷数据,但我无法再次将其放回线路上。如何在通过另一个接口的途中发送数据包?
// All #includes
struct sockaddr_in source,dest;
int i,j,k;
int main()
{
int saddr_size , data_size;
struct sockaddr_in saddr;
unsigned char *buffer=malloc(65535);
int sock_raw = socket( AF_PACKET , SOCK_RAW , htons(ETH_P_ALL)) ;
if(sock_raw < 0)
perror("setsockopt");
setsockopt(sock_raw , SOL_SOCKET , SO_BINDTODEVICE , "eth0" , strlen("eth0")+ 1 );
if(sock_raw < 0)
{
perror("Socket Error");
return 1;
}
while(1)
{
saddr_size = sizeof (struct sockaddr);
//Receive a packet
data_size = recvfrom(sock_raw , buffer , 65536 , 0 ,(struct …Run Code Online (Sandbox Code Playgroud) 我可以使用express提供静态HTML页面.我还安装了"ejs",用我的.js文件中的局部变量数据呈现页面.我只需要在页面的一角显示一个小徽标以及其他数据.在浏览器中打开html文件就可以很好地加载图像了,但是在服务器上我得到了一个破损的图像.我认为这可能是我的文件路径或目录结构的问题.这是我原始的简单代码,没有徒劳的尝试:
server.js
var express = require ('express');
var fs = require ('fs');
var app = express ();
var bodyParser = require ('body-parser');
app.use (bodyParser ());
var server = require ('http').createServer (app);
app.set('views', __dirname + '/views');
app.engine('.html', require('ejs').__express);
var my_name="Goku";
var my_power=9001;
app.get ('/', function (req, res){
console.log ('GET /');
res.render('index.html',{name:my_name,power:my_power});
});
server.listen (8888);
Run Code Online (Sandbox Code Playgroud)
的index.html
<html>
<body>
<input id="name" value=" <%=name%> " /><br>
<input id="power" value=" <%=power%> "/><br>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我没有包含img src行,所以你可以给我完整的一行,人们有时会忽略我微妙的语法错误.关于目录结构,我只在我的/ home文件夹中有'server.js'文件和'索引. html'文件在/ home/views中
Ploutch提供的解决方案:我将logo.jpg移动到我在'/ home'下创建的'/ images'文件夹中我刚刚添加了这些行 -
server.js
app.use(express.static(__dirname …Run Code Online (Sandbox Code Playgroud) 在3个不同的系统上尝试过:CentOS,Ubuntu和Windows(MinGW); 所以我不认为这是一个异常(未定义的行为)
int hello(void)
{
(void)printf("HELLO WORLD\n");
}
int main(void)
{
printf("%d\n",hello());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是:
你好世界
12
即使使用不同的文本,它也会返回正确的值.有什么解释吗?