小编Chr*_*ieb的帖子

将1和0的字符串转换为字节数组

我有一个字符串,其长度是8的倍数,只包含0和1.我想将字符串转换为适合写入文件的字节数组.例如,如果我有字符串"0010011010011101",我想得到字节数组[0x26,0x9d],当写入文件时,它将给出0x269d作为二进制(原始)内容.

我怎么能用Python做到这一点?

python

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

声明没有初始大小的数组

我正在尝试使用Visual Studio 2008在Windows Vista x64上编译OpenSSL(pyOpenSSL)的Python绑定.当我运行时python setup.py build_ext -I C:\OpenSSL\include,它会因以下错误而死掉:

building 'OpenSSL.crypto' extension
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -I\OpenSSL\include -IC:\Python26\include -IC:\Python26\PC /Tcsrc/crypto/x509name.c /Fobuild\temp.win-amd64-2.6\Release\src/crypto/x509name.obj
x509name.c
src/crypto/x509name.c(16) : error C2133: 'crypto_X509Name_methods' : unknown size
error: command '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe"' failed with exit status 2
Run Code Online (Sandbox Code Playgroud)

当我查看相关来源时,我在第16行看到以下内容:

static PyMethodDef crypto_X509Name_methods[];
Run Code Online (Sandbox Code Playgroud)

我的C非常生疏,所以我不记得你是否可以这样做.由于这是一个Python库,我猜这是用gcc编译的,但我没有在这台计算机上安装Cygwin环境.是否有一些开关可用于使用VS2008编译此代码?

回答:

稍后在代码中,有这样的:

/*
 * ADD_METHOD(name) expands to a correct PyMethodDef declaration
 *   {  'name', (PyCFunction)crypto_X509_name, METH_VARARGS }
 * for convenience
 */ …
Run Code Online (Sandbox Code Playgroud)

c

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

在代码中获取页面的绝对URL

我是ASP.NET的新手,我正在尝试将Web应用程序从使用硬编码的部署位置(即/base/path/index.aspx)转换为在运行时发现它们.如果我使用Response.Redirect(),我可以将路径表示为'〜/ index.aspx',并且在运行时,ASP.NET将根据部署Web应用程序的位置构建正确的URL以发送重定向.

代码中有些地方动态生成Javascript和/或HTML,并作为响应的一部分发送到客户端以强制新窗口.在这些情况下,我不知道如何获取应在新窗口中打开的实际URL.在这种情况下使用〜不起作用,因为浏览器而不是服务器正在评估URL.ASP.NET中是否有类或方法可以为我提供我正在寻找的URL?我看自己,但我甚至不知道如何正确地表达我的问题.

vb.net asp.net url

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

重命名Gradle任务

我希望"保存"Gradle插件之一生成的任务,同时保留用户与之交互的任务的名称.看起来最好的方法是重命名插件生成的任务,然后使用相同的名称创建包装器任务.

乍一看,TaskContainer#replace似乎是要走的路,除了它只是使用原始名称创建一个新的空任务,而我已经拥有了我想要放在该名称的任务对象.

如何"重命名"Gradle任务,以便在保留原始任务的同时使用原始名称创建新任务?

gradle

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

你怎么有一个被叫bat文件而不是杀掉它的bat文件?

我在Windows 2003系统上,需要在WebSphere Application Server中编写删除和创建配置文件的脚本.这需要我两次调用manageprofiles.bat,一次删除现有配置文件,一次创建新配置文件.

在我的批处理文件中,我有以下内容:

cd "C:\Program Files\IBM\WebSphere\AppServer\bin"
manageprofiles.bat -delete -profileName AppSrv01
rmdir /s /q ..\profiles\AppSrv01
manageprofiles.bat -create -templatePath ..\profileTemplates\default -profileName AppSrv01 -profilePath ..\profiles\AppSrv01
Run Code Online (Sandbox Code Playgroud)

manageprofiles.bat文件以以下结尾:

set RC=%ERRORLEVEL%
@endlocal & exit /b %RC%
Run Code Online (Sandbox Code Playgroud)

如果在我的批处理文件的第二行中删除配置文件时出错(这种情况经常发生),manageprofiles.bat会发出错误消息并导致我的批处理文件终止.我不希望发生这种情况,因为我将在下一个命令中删除配置文件的其余部分.阅读退出文档会让我相信manageprofiles.bat中exit命令中的/ b应该导致manageprofiles.bat终止而不会影响我的bat文件.

我不想以任何方式触摸manageprofiles.bat文件,因为我的更改可能会被更新恢复,并再次破坏我的脚本.我可以在批处理文件中做些什么来解决这个问题吗?

windows batch-file

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

Scala中的自动投射

我有一个继承Actor特征的类.在我的代码中,我有一个方法,x使用循环创建此actor的数量,另一个方法只是将Finish消息发送给所有人,告诉他们终止.我使用kill方法只需要一个Actor数组,因为我希望能够将它与任何类型的Actor数组一起使用.但是,出于某种原因,当我传递Array [Producer]类型的值,其中Producer将Actor扩展到接受类型Array [Actor]的方法时,我得到一个类型错误.Scala不应该看到Producer是一种Actor并自动转换它吗?

scala

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

根据要执行的任务配置Gradle任务

我好像有点鸡蛋问题.我有Gradle用Java插件定义的测试任务.我将JUnit类别设置为使用属性运行.我的团队已表示对将在特定类别中运行任务而不必使用-P在命令行上设置属性的任务感兴趣.

我无法想出一种方法来解决这个问题,因为新test任务只有在执行任务时才需要配置任务.由于要运行的类别需要是测试任务的输入参数,以确保UP-TO-DATE检查功能正常,因此需要在配置阶段设置它们,并且不能等待执行阶段.

有谁知道如何进行像这样的设置?也许我正在从错误的角度接近它.

编辑1

当前的build.gradle

apply plugin: 'java'

def defaultCategory = 'checkin'

test {
    def category = (project.hasProperty('category') ? project['category'] : defaultCategory)
    inputs.property('category', category)

    useJUnit()
    options {
        includeCategories category
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要什么,但不起作用:

apply plugin: 'java'

def defaultCategory = 'checkin'

test {
    def category = (project.hasProperty('category') ? project['category'] : defaultCategory)
    inputs.property('category', category)

    useJUnit()
    options {
        includeCategories category
    }
}

task nightly(dependsOn: 'build') {
    defaultCategory = 'nightly'
}

task weekly(dependsOn: 'build') {
    defaultCategory = …
Run Code Online (Sandbox Code Playgroud)

gradle

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

getpeername()返回错误的数据

我正在Linux上编写我的第一个套接字程序,并且正在尝试打印我已连接的对等端的IP地址和端口.我使用getpeername()以及inet_ntop()和ntohs()来从sockaddr_in结构中获取数据.当我查看结果时,我得到的IP地址不会发送到我所知道的任何服务器(ping失败),并说我正在收听netstat所说的未被使用的端口.

我究竟做错了什么?我应该得到130.215.28.181:39000,但每次运行程序时我得到209.94.72.137:18825.看看netstat显示我确实正在侦听端口39000.

这是我客户端程序的一个片段:

connect(sockfd,&serv_addr,sizeof(serv_addr))

// print welcome message
char ipstr[INET6_ADDRSTRLEN];
bzero(ipstr, 50);
struct sockaddr_in *address;
socklen_t address_len = sizeof(*address);
getpeername(sockfd, (struct sockaddr *) address, &address_len);
inet_ntop(AF_INET, &address->sin_addr, ipstr, sizeof(ipstr));
printf("Connection established successfully with %s:%i!\n", ipstr, ntohs(address->sin_port));
Run Code Online (Sandbox Code Playgroud)

c sockets linux

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

标签 统计

c ×2

gradle ×2

asp.net ×1

batch-file ×1

linux ×1

python ×1

scala ×1

sockets ×1

url ×1

vb.net ×1

windows ×1