小编dai*_*isy的帖子

解析HTTP数据包的正确方法是什么?

我正在创建一个简单的HTTP服务器,需要了解HTTP请求,

但像Chrome这样的浏览器使用HTTP Pipelining技术,这意味着在单个连接中可以发送多个HTTP请求.

现在我发现很难说出多个HTTP请求之间的界限,一个明显的例子是GET请求加上随机数据的表单上传.

我现在想到的是拆分我收到的所有数据\r\n,然后检查每一行,看看它是否像HTTP请求,例如^(GET|PUT|HEAD|POST|MOVE|TRACE) /[^ ]+ HTTP/[0-9]+\.[0-9]+$

但这可能仍然是错误的,任何想法?(请不要告诉我使用现有的HTTP服务器库......我正在练习一些东西)

c parsing http

1
推荐指数
1
解决办法
1298
查看次数

检索 list_head 对象的父结构

在 linux 内核中有一个struct XX包含struct list_head YY.

现在给出一个指向struct XX对象的指针,我想XX在链表中找到所有结构。所以我会遍历list_head结构体,然后找到对应的父结构体。

但是这里的第二步似乎不适用。所以我不确定是否有可能实现这一目标。

例子:

struct XX {
    ...
    struct list_head YY;
};
Run Code Online (Sandbox Code Playgroud)

c linux struct kernel linked-list

1
推荐指数
1
解决办法
440
查看次数

reflect.Value的字符串方法无法按预期工作

我正在尝试从reflect.Value中检索字符串值,

我希望value.String()是,okok但我得到了<interface {} Value>.

我错过了什么?

package main

import (
    "fmt"
    "reflect"
)

func dump(args *[]interface{}) {
    value := reflect.ValueOf(*args).Index(0)
    fmt.Println(value.String())
    if value.String() != "okok" {
        fmt.Println("miss")
    }
}

func main () {
    var args []interface{}
    args = append(args, "okok")
    dump(&args)
}
Run Code Online (Sandbox Code Playgroud)

reflection go

1
推荐指数
1
解决办法
62
查看次数

在 Visual Studio 构建后事件中获取 .NET 目标平台

我需要使用 .NET 3.5 / .NET 4.0 运行不同的任务,但构建后事件没有代表目标框架版本的宏。

有什么建议吗?

.net visual-studio

1
推荐指数
1
解决办法
1148
查看次数

正确使用ifdef进行自定义调试

仅当它是调试版本时,我才尝试打印消息。所以我写了下面的代码:

#ifdef MY_DEBUG
#define dbg_printf fprintf
#else
#define dbg_printf
#endif

dbg_printf(stderr, "item: %s\n", config[i]);
Run Code Online (Sandbox Code Playgroud)

当未定义 MY_DEBUG 时,我收到以下消息:

main.c:xxx:xxx: warning: left-hand operand of comma expression has no effect [-Wunused-value]
             dbg_printf(stderr, "item: %s\n", config[i]);
Run Code Online (Sandbox Code Playgroud)

我试图避免该消息,但我应该添加-Wunused-value到 CFLAGS 吗?最佳做法是什么?

c linux

1
推荐指数
1
解决办法
28
查看次数

我如何让Vim像printf那样对齐?

我想让Vim对变量声明进行排序,如下所示:

NotifyNotification*    notification;
gboolean               success;
GError*                error = NULL;
Run Code Online (Sandbox Code Playgroud)

就像printf一样,我想在使用=对齐线时启用它,使其成为默认的对齐方法,有au FileType cpp可能吗?

vim printf alignment

0
推荐指数
1
解决办法
286
查看次数

在TSQL CREATE PROC中不能使用double?

我有一个语法错误double,有什么问题吗?切换到可以安全float吗,但有效吗?

create proc S_average
(
    @dept_id char(10),
    @dept_name char(10) OUTPUT,
    @dept_avg double OUTPUT
)
AS
select @dept_name = name , @dept_avg = payroll
from dbo.employees
where id = @dept_id;
Run Code Online (Sandbox Code Playgroud)

谢谢 !

t-sql sql-server sql-server-2008

0
推荐指数
1
解决办法
1165
查看次数

使用文件浏览器在 VIM 中打开一个有效的 url?

我想打开一个 URL,xdg-open当光标停留在指向有效字符串的某个字符串上时,例如folder 通过按某个键,它将启动xdg-open the_valid_url

那可能吗 ?

我希望它甚至可以space在本地 url 中工作。

谢谢 !

vim

0
推荐指数
1
解决办法
348
查看次数

语法错误接近0

以下陈述有什么问题?我正在使用SQL Server 2008.

use Demo;

SELECT * FROM users
limit 0 , 30
Run Code Online (Sandbox Code Playgroud)

我有:

Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '0'.
Run Code Online (Sandbox Code Playgroud)

这真的很奇怪.我试过谷歌,但没有找到太多信息.

sql sql-server select sql-server-2008

0
推荐指数
1
解决办法
2588
查看次数

为什么z-index不在这里工作

我试图让图像重叠,我应该看到第一张图像的所有'Adobe',但是e被第二张图像阻挡了,第三张也是如此.

在此输入图像描述

我使用不同的z-index使最左边的图像显示在堆栈的顶部,但它在这里不起作用.使用margin-left和负值是不对的?

<html>
    <head>
        <title>Demo</title>
        <style>
            li {
                float: left;
                display: inline;
                margin-left: -20px;
            }
            .A {
                z-index: 10;
            }
            .B {
                z-index: 9;
                margin-top: 3px;
            }
            .C {
                margin-top: 6px;
                z-index: 8;
            }
        </style>
    </head>
    <body>
        <ul>
            <li><img class="A" src='adobe.gif' /></li>
            <li><img class="B" src='adobe.gif' /></li>
            <li><img class="C" src='adobe.gif' /></li>
        </ul>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html css

0
推荐指数
1
解决办法
2783
查看次数