小编ref*_*ind的帖子

如何与Linux tun驱动程序进行交互

我很难解决这个问题 - 我正在尝试编写一个与Linux隧道驱动程序交互的程序.在最基本的层面上,我只想创建一个能够通过网络隧道传输数据的应用程序.但是,我完全不知道如何正确设置隧道驱动程序以实现此目的.

我在Ubuntu 9.04上开发,我加载了隧道驱动程序内核模块.

存在设备/dev/net/tun,但是没有/dev/tunX设备.我无法使用创建这些设备ifconfig- /sbin/ifconfig tun0 up例如,每当我运行时,我都会收到以下错误:

获取接口标志时的tun0:ERROR:没有这样的设备.

如果我尝试查看/dev/net/tun设备,则会出现以下错误:

cat:/ dev/net/tun:文件描述符处于错误状态.

尝试/dev/tunX通过一个小程序打开,基本上,简单

tun_fd = open( "/dev/tun0", O_RDWR )
Run Code Online (Sandbox Code Playgroud)

返回-1:应用程序以root身份运行,但仍无法打开此隧道设备.可以打开/dev/net/tun,但这似乎不会生成/dev/tunX要使用的新设备.

总而言之 - 如何编写希望使用Linux隧道驱动程序的应用程序?任何见解将不胜感激.

谢谢; 〜罗伯特

c driver tunnel tun

16
推荐指数
2
解决办法
3万
查看次数

PropertyGrid对象级别的readonly属性

我想在我的中显示一个类的多个实例PropertyGrid.这个类看起来像这样:

public class Parameter
{
    [Description("the name")]
    public string Name { get; set; }

    [Description("the value"), ReadOnly(true)]
    public string Value { get; set; }

    [Description("the description")]
    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有很多类的实例TreeView.当我在我选择其中一个时TreeView,属性会PropertyGrid按预期显示.到目前为止一切顺利,但我想以下列方式自定义此行为:

对于每个单个实例,我希望能够阻止用户修改特定属性.通过ReadOnly(true)在我的类中设置(如上面的示例中所示),Value将在类级别禁用所有属性.

经过一些研究后,我发现以下解决方案让我有机会在运行时启用/禁用特定属性:

PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this)["Value"];

ReadOnlyAttribute attr = 
        (ReadOnlyAttribute)descriptor.Attributes[typeof(ReadOnlyAttribute)];

FieldInfo isReadOnly = attr.GetType().GetField(
        "isReadOnly", BindingFlags.NonPublic | BindingFlags.Instance);

isReadOnly.SetValue(attr, false);
Run Code Online (Sandbox Code Playgroud)

这种方法运行得很好但不幸的是也只​​在类级别上.这意味着,如果我设定ValueisReadOnlyfalse,所有我的Parameter-objects拥有 …

.net c# propertygrid propertydescriptor readonly-attribute

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