问题列表 - 第16529页

NetworkStream.CanRead 返回 true 但缓冲区不返回任何值

我有一个 do while 循环,它从对象读取缓冲区,而NetworkStreamwhile 条件是networkStream.CanRead只要它可以读取,它就应该继续从缓冲区读取。唯一的问题是,当我从缓冲区读取并转换为字符串时,其中没有任何内容。即它是空的。

为什么会发生这种情况?

这是一个 ASP.NET(VS2005) 应用程序

@dtb代码信息:

我正在传递一个NetworkStream对象networkStream

// between 2 functions in a loop
{
    SendMessage(networkStream, message);

    ReadMessage(networkStream);
}
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果它重新连接并再次连接,发送/读取工作正常。NetworkStream这实际上是发送(我在这里没有遇到异常)或对象重用的问题吗?这在测试 TCP 服务器上本地工作正常,但在生产中(Windows Server 2003)时我遇到了上述问题(即无法从流中读取任何内容 - 直到我实际超时(退出循环)之后) 10秒)

ReadMessage(networkStream)
{
    if (networkStream != null && networkStream.CanRead)
    {
        byte[] myReadBuffer = new byte[1024];
        StringBuilder myCompleteMessage = new StringBuilder();

        do
        {
            int numberOfBytesRead = networkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
            string messageRead = Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead);
            myCompleteMessage.Append(messageRead);
        } while (networkStream.CanRead);
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# ip tcp networkstream

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

ASM中的非法指令:锁定cmpxchg dest,src

我一直在讨论一些x86程序集,因为它出现在我的许多课程中.特别是,我想将比较和交换(CAS)作为用户函数公开.这是为了我可以实现自己的锁.

我在Intel CPU上使用Linux 2.6.31和GCC 4.1.1.

我有以下内容:

// int cmpxchg(int *dest, int expected, int update)
.globl cmpxchg
cmpxchg:
  pushl %ebp
  movl  %esp, %ebp

  // edx holds dest
  movl 8(%ebp), %edx
  // eax holds expected value
  movl 12(%ebp), %eax
  // ecx holds the new value
  movl 16(%ebp), %ecx

  // cmpxchg dest_addr, exp_value
  // compare to %eax is implicit
  lock cmpxchgl %edx, %ecx

  leave
  ret
Run Code Online (Sandbox Code Playgroud)

这是在*.s文件中,我用我的驱动程序编译.当我包括该行

  lock cmpxchgl %edx, %ecx
Run Code Online (Sandbox Code Playgroud)

并执行,我收到"非法指令"错误.当我用线替换

  cmpxchgl %edx, %ecx
Run Code Online (Sandbox Code Playgroud)

我的代码似乎运行正常.

首先,有lock必要吗?我不确定是否cmpxchgl是天然的原子,所以我曾经lock确定过.作为用户地计划,我甚至被允许使用lock …

x86 assembly

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

如何使用模板化函数重载接受来自不同基类的派生类?

我希望能够定义

template <class TX>
void f(const TX &x){ ... }
template <class TY>
void f(const TY &x){ ... }
Run Code Online (Sandbox Code Playgroud)

其中TX必须从BaseX派生而TY必须从BaseY派生(我如何指定这种东西?),我希望能够将其称为

f(DerivedX<T>())
Run Code Online (Sandbox Code Playgroud)

最重要的是我可以避免指定模板参数.这是可能的,如果是这样,我将如何实现它?如果不可能,有没有办法让模板化函数只接受某些类型,但仍然可以隐式实例化它?我不能只是让f的重载接受基类,因为我需要派生类的类型.

c++ inheritance templates

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

可以/应该在Scala中添加/创建从T到Option [T]的隐式转换吗?

这是一个让事情变得更有效率的机会(对于程序员而言):我觉得不得不把事情包裹起来Some,例如Some(5).这样的事情怎么样:

implicit def T2OptionT( x : T) : Option[T] = if ( x == null ) None else Some(x)
Run Code Online (Sandbox Code Playgroud)

scala scala-option

35
推荐指数
3
解决办法
4530
查看次数

实现多页GWT网站

我有一个关于管理多页GWT网站的问题.现在我只有一个html页面,其中嵌入了很多div来存储我使用的小部件.然后,根据用户的操作,我使用GWT DOM类添加或删除必要的div.因此,我只使用一个html页面来模拟多个页面.有一个更好的方法吗?

谢谢.

java gwt client-side

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

强迫复杂的密码比盐腌"更重要"?

我花了两个小时阅读盐渍密码,确保我理解了这个想法.我希望你们中的一些人可以分享你对我的结论的了解.


如果我是攻击者,并且我可以访问用户数据库,那么我可以使用表中存在的所有用户盐并使用它们来创建我的彩虹表.对于大桌子,这可能需要很长时间.如果我可以将列表切换到感兴趣的用户(管理员,模组),我可以使用更大的字典列表来创建彩虹表,提高我的命中百分比......

如果这是真的那么盐腌似乎真的没有那么多帮助.它只会轻微地减慢攻击者的速度.

我知道理想情况下你会想要强制使用复杂的密码并用独特的随机字符串加密它们,但强制使用复杂的密码会让用户烦恼(我知道这让我感到烦恼),所以很多网站都不这样做.看起来网站对他们的用户不利,并且强制复杂的密码比一个好的腌制方法更重要.

我想这不是一个问题,而是要求其他人了解情况.

passwords hash cryptography salt rainbowtable

11
推荐指数
3
解决办法
653
查看次数

检查Django request.POST中的内容

我通过request.POST接受数据,如下所示:

if request.method == 'POST': 
    l = Location() 
    data = l.getGeoPoints(request.POST) 
    appid = settings.GOOGLE_API_KEY 

    return render_to_response('map.html',  
                               {'data': data, 'appid': appid}, 
                               context_instance=RequestContext(request)) 
Run Code Online (Sandbox Code Playgroud)

它接受来自一堆名为form-0-location的文本输入框的数据,一直到form-5-location.

我要添加的是检查以确保request.POST包含任何这些输入字段中的数据.我认为我的问题是我不知道在Django中描述这个的正确术语.

我知道如何在PHP中做到这一点:查看$ _POST内部至少其中一个字段不为空,但我似乎无法通过搜索谷歌找到正确的答案.

如果我在这些输入字段中找不到任何数据,我想将用户重定向回主页面.

forms django data-processing

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

需要CGPointMake解释吗?

有谁可以向我解释一下CGPointMake取悦了什么?

image.position = CGPointMake(80,200);
id go    = [MoveTo actionWithDuration:2 position:CGPointMake(190,460)];
Run Code Online (Sandbox Code Playgroud)

例如上面这个语法.我不太确定

objective-c cgpoint

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

限制较少的GPL许可证

情况:

我想为开源项目选择许可证.

考虑过GPL与BSD/MIT之后,我更喜欢GPL,因为它保护了软件的开源性.但是,我更喜欢限制性较小的东西.

对于不同版本的GPL不兼容,我特别感到好笑!

我希望软件能够保留FOSS,但我不希望许可问题妨碍将源代码合并到其他FOSS项目中.

要求:

  1. FOSS(免费/开源)
  2. 防止并入封闭源软件
  3. 不阻止合并到具有其他许可证的开源软件中

有这样的执照吗?

潜在问题:

我知道#3和#2可能看似矛盾,但我认为有很多方法可以解决它,例如,说出许可证,以便:

  • 如果您合并到使用gpl-like*许可证的FOSS软件中,您可以重新许可该许可证
  • 否则,您可能无法更改许可证

gpl-like是任何需要整个项目都在同一许可下的FOSS许可证.

请注意:

这个问题是关于是否有这样的许可证.这不是创造一个的尝试.

licensing open-source gpl

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

温莎城堡与多个建设者

我目前正在进行转换,从使用Ninject到当前版本的Castle Windsor,用于简单的C#.NET应用程序.

在大多数情况下,转换进展顺利,容器的实施已经完美无缺.但是我的存储库对象存在一个小问题.

我有一个用户存储库对象,以下列方式编码:

public class UserRepository : IUserRepository {
    public UserRepository(IObjectContext objectContext)  {
        // Check that the supplied arguments are valid.
        Validate.Arguments.IsNotNull(objectContext, "objectContext");

        // Initialize the local fields.
        ObjectContext = objectContext;
    }

    public UserRepository(IObjectContextFactory factory) 
        : this(factory.CreateObjectContext()) { 
    }

    // -----------------------------------------------
    // Insert methods and properties...
    // -----------------------------------------------
}
Run Code Online (Sandbox Code Playgroud)

为了对应这段代码,我在应用程序的配置文件中设置了以下条目:

<castle>
    <components>
        <component id="objectContextFactory" lifestyle="custom"
                   customLifestyleType="Common.Infrastructure.PerWebRequestLifestyleManager, Common.Castle"
                   service="Project.DAL.Context.IObjectContextFactory, Project.DAL.LINQ"
                   type="project.DAL.Context.ObjectContextFactory, Project.DAL.LINQ">
        </component>
        <component id="userRepository" lifestyle="custom"
                   customLifestyleType="Common.Infrastructure.PerWebRequestLifestyleManager, Common.Castle"
                   service="Project.BL.Repository.IUserRepository, Project.BL"
                   type="Project.BL.Repository.UserRepository, Project.BL.LINQ">
            <parameters>
              <factory>${objectContextFactory}</factory>
            </parameters>
        </component>
    </components>
</castle>
Run Code Online (Sandbox Code Playgroud)

对我来说,一切看起来都应该如此.当我尝试解析IObjectContextFactory服务的实例时,我检索一个ObjectContextFactory对象.当我尝试解析IUserRepository服务的实例时,我的问题出现了.我受到以下令人愉快的例外处理:

无法创建组件'userRepository',因为它具有要满足的依赖性.userRepository正在等待以下依赖项: …

c# constructor dependency-injection castle-windsor

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