问题列表 - 第30113页

在python中选择和ssl

我有一个使用select.select()的服务器应用程序,现在我正在尝试向其添加SSL,但是在收听"原始"套接字时出现以下错误:

ValueError: file descriptor cannot be a negative integer (-1)
Run Code Online (Sandbox Code Playgroud)

所以我想我会在select中使用ssl.wrap_socket返回的ssl流.这样做,它不会返回任何错误但它也不起作用 - 我不确定问题是什么,我做了很多研究并遇到了类似问题的帖子,但我发现没有对此的解决方案.

真的很感激任何帮助.

python ssl select

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

使用Maven启动MongoDB

我正在使用MongoDB Java驱动程序在我的应用程序中执行一些持久性.我的应用程序的构建是通过Maven管理的,我正在寻找将一系列与MongoDB相关的单元测试集成到我的Maven构建过程中的最佳方法.我不能假设构建应用程序的用户已将MongoDB dameon安装为服务,因此需要在执行相关单元测试之前启动守护程序.

我的第一个想法是将二进制文件存储在测试目录的resources文件夹中(例如,src/test/resources),并使用Runtime.exec()启动守护程序.有没有更清洁的方法?我觉得Runtime.exec()是一种快速而肮脏的方式来使某些东西工作但不是最理想的...我需要这个在linux和windows上工作.

java maven-2 mongodb

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

带有char数组的C中未定义的行为(?)

当我尝试

    char bla[32] = "foobar";
    int i;
    putchar(bla[i]);
Run Code Online (Sandbox Code Playgroud)

strlen(bla) < i < 32,bla[i]是永远\0.但事实上这不是未定义的行为,应该避免吗?

c arrays string char undefined-behavior

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

在C#程序中用字符串替换流

目前,我有一个程序读取文件并使用XMLTextWriter将XML文件写入磁盘.不久之后,我读了文件并解析它.

我想把这两个程序放在一起.我想摆脱写入文件步骤.XMLTextWriter在构造时需要文件路径或Stream.有没有办法使Stream能够使用输出创建一个字符串而不是将其写入文件?

谢谢

c# stream

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

如何在运行时告诉IEnumerable <T>是否被延迟?

我希望能够在运行时询问一个IEnumerable,如果它是一个延迟表达式,或者它是一个具体的集合.

因此,如果该方法被称为IsDeferred,则IsDeferred(myList.Where(i => i> 5))将返回true并且IsDeferred(myList.Where(i => i> 5).ToList())将返回false.

谢谢.

编辑:

我想我可以在没有提供我想做的根本原因的情况下问这个,但我猜不是.首先,正如其他人所指出的那样,在编译时无法告诉它.集合的类型不一定能告诉你它是否是懒惰的.您可以拥有一个IEnumerable,这是一个延迟查询而另一个不是(请参阅原始问题).使用强力来识别具体类型并不是一个优雅的解决方案.

现在,至于我想要这样做的原因.想象一个方法,它接受一个I​​Enumerable,然后多次引用它:

public void MyMethod<T>( IEnumerable<T> items) {
  foreach( var item in items )
    // Do stuff.
  Console.WriteLine( "There are " + items.Count() + " items in the collection." );
  if( items.Any() )
    // Do some more things.
}
Run Code Online (Sandbox Code Playgroud)

现在,这看起来不错,但如果我叫的MyMethod(myList.Where(I => i.ReallyExpensiveOperation())),那么你就可以看到,贵在哪里是会得到执行三次.一次为迭代,一次为Count,再为Any.我可以通过让MyMethod的第一行做ToList()来解决这个问题.但是,如果我知道自己不必这样做(如果我知道它已经是一个具体的清单),那就更好了.我明白我可以重新写入(完全假的,而不是在所有现实世界的例子)的MyMethod多次未引用项集合,但我不感兴趣,作为一个解决方案.

再次感谢.

c# linq

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

在CoCreateInstance之前调用QueryInterface?

以上可能吗?

我可以这样做:

IUnknown *punk;

punk->QueryInterface(IID_MyInterface, (void**)&m_pMyInterface);
Run Code Online (Sandbox Code Playgroud)

我以为这会告诉我MyInterface是否支持m_pMyInterface ...

c++ com interface

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

TransactionScope:避免分布式事务

我有一个父对象(DAL的一部分),其中包含List<t>子对象的collection().

当我将对象保存回DB时,我输入/更新父对象,然后循环遍历每个子对象.为了可维护性,我将孩子的所有代码放入一个单独的私有方法中.

我打算使用标准的ADO事务,但在我的旅行中,我偶然发现了TransactionScope对象,我相信这将使我能够在一个事务中将父方法中的所有数据库交互(以及子方法中的所有交互)包装起来.

到现在为止还挺好..?

所以接下来的问题是如何在TransactionScope中创建和使用连接.我听说使用多个连接,即使它们是相同的DB也可以强制TransactionScope认为它是一个分布式事务(涉及一些昂贵的DTC工作).

是这样吗?或者,正如我似乎在其他地方读到的那样,使用相同的连接字符串(它将自己用于连接池)的情况会好吗?

更实际的是,我......

  1. 在父和子中创建单独的连接(尽管具有相同的连接字符串)
  2. 在父项中创建一个连接作为参数传递它(对我来说似乎很笨拙)
  3. 做点什么......?

更新:

虽然看起来我可以使用我常用的.NET3.5 +和SQL Server 2008+,但是这个项目的另一部分将使用Oracle(10g),所以我不妨练习一种可以跨项目使用的技术.

所以我只是简单地将连接传递给子方法.


选项1代码示例:

using (TransactionScope ts = new TransactionScope())
            {
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        cmd.Connection = conn;
                        cmd.Connection.Open();
                        cmd.CommandType = CommandType.StoredProcedure;

                        try
                        {
                            //create & add parameters to command

                            //save parent object to DB
                            cmd.ExecuteNonQuery();

                            if ((int)cmd.Parameters["@Result"].Value != 0)
                            {
                                //not ok
                                //rollback transaction
                                ts.Dispose();
                                return false;
                            }
                            else //enquiry saved OK
                            {
                                if …
Run Code Online (Sandbox Code Playgroud)

c# transactions transactionscope distributed-transactions

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

与多个开发人员一起使用git和svn

我有一个svn存储库(如果重要的话没有TLB结构)我想和git一起使用.我可以做一个git-svn克隆,在git repo中处理我的更改,并在完成后提交回svn repo.直到这一点,这一点很清楚.

我不确定如何将此工作流模型扩展到多个开发人员.我需要我的开发团队能够处理一个git repo(从svn repo克隆的那个),它应该像我们所有人的普通git repo一样.在某些时候,任何开发人员都必须能够提交回svn repo.这可能吗?谢谢.

svn git version-control git-svn

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

MSBuild,自定义任务运行自定义工具生成linq到sql模型的类?

我有以下场景.我们使用存储过程来访问数据库,我们使用LiNQ 2 SQL生成类,或者我们使用Unplugged LINQ to SQL Generator.它已经作为自定义工具运行,但是对生成的类进行区分是一个巨大的痛苦.我们想自动生成类但是将它从版本控制中排除,所以我开始创建一个msbuild任务.发现这篇文章这篇文章,但我不能自己解决这个问题.我添加了一些代码,任务如下所示:

public class GenerateDesignerDC : Task
{
    public ITaskItem[] InputFiles { get; set; }
    public ITaskItem[] OutputFiles { get; set; }

    public override bool Execute()
    {
        var generatedFileNames = new List<string>();
        foreach (var task in InputFiles)
        {

            string inputFileName = task.ItemSpec;
            string outputFileName = Path.ChangeExtension(inputFileName, ".Designer.cs");
            string result;

            // Build code string
            var generator = new ULinqCodeGenerator("CSharp");
            string fileContent;
            using (FileStream fs = File.OpenRead(inputFileName))
            using (StreamReader rd = new …
Run Code Online (Sandbox Code Playgroud)

c# msbuild msbuild-task

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

基类实例作为参数的派生类的构造方法

我有这个代码:

#include <stdio.h>

class A
{
public:
    A() { printf("A::A()\n"); }
    A(const A &a) { printf("A::A(A &a)\n"); }
    A &operator=(const A &a) { printf("A::operator=\n"); }
};

class B : public A
{
public:
    B() { printf("B:B()\n"); }
    B(const A &a) : A(a) { printf("B::B(A &a)\n"); }
    B &operator=(const B &b) { printf("B::operator=\n"); }
};

int
main(int argc, char *argv[])
{
    printf(">> B b1\n");
    B b1;
    printf(">> b2 = b1\n");
    B b2 = b1;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么该行B b2 = …

c++ constructor derived-class

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