我正在用C构建简单的http状态检查器.我已经完成了网络部分,但是我遇到了字符串操作问题.它是如何工作的:
$ ./client http://domain.com/path.html#anchor
200
Run Code Online (Sandbox Code Playgroud)
该实用程序只是在命令行上输出给定页面的状态.我需要将给定的字符串解析为hostname和request path.我还用这个定义构建了一个"模板"字符串:
#define HTTP_GET_MSG "GET %s HTTP/1.1\nUser-Agent: my-agent-0.01\nHost: %s\n\n"
Run Code Online (Sandbox Code Playgroud)
我想知道如何将解析后的url(主机和路径)插入到定义的字符串中,然后send()才能将其插入套接字?
我一直在读一些关于不可变结构,比如string.简单地说,一旦它们被创建,它们就不会改变状态(例如,要求子字符串为你提供一个新的字符串).
现在,我想知道CLR是否"知道"某个类型是不可变的,并且使用这个事实在运行时做一些聪明的事情,或者主要是某些事件使得某些场景更容易编程?
假设我们有一个存储库和5个提交:
现在我意识到提交4和5是一个坏主意.我想完全删除在commit 4和5中提交的所有更改.如何做?
我在双击ListBox中的项目时尝试做某事.我找到了这样做的代码
void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
int index = this.listBox1.IndexFromPoint(e.Location);
if (index != System.Windows.Forms.ListBox.NoMatches)
{
MessageBox.Show(index.ToString());
//do your stuff here
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我单击某个项目时,不会触发该事件.如果我在所有项目下方的ListBox中单击,则会触发该事件.
我设置了ListBoxto 的DataSource属性IList<MyObject>.
有任何想法吗?
我使用QtDesigner创建了一个对话框.QLineEdit对话框中有一个对象带有一些默认内容.当对话框初始化并且焦点转到时QLineEdit,我希望自动选择默认内容,因此一旦用户开始写入,之前的内容将被覆盖.
编辑:
在构造函数中:
dialog->accept();
Run Code Online (Sandbox Code Playgroud)
和
connect( dialog, SIGNAL(accepted()), QlineObj, SLOT( selectAll() ) );
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的操作系统移植NewLib(我正在关注本教程:http://wiki.osdev.org/Porting_Newlib ),我有一些问题.
一旦LibGloss完成并编译,我何时必须使用已创建的libnosys.a?是在我编译main.c的时候吗?
mipsel-uknown-elf-gcc main.c -Llibnosys.a`
Run Code Online (Sandbox Code Playgroud)我的crt0.c完成了.我必须"将它作为第一个对象链接".我怎样才能做到这一点?这是这样的吗?
mipsel-uknown-elf-ld crt0.o main.o
Run Code Online (Sandbox Code Playgroud)谢谢你的回答!
我刚刚在一个站点上设置了nginx来提供静态请求,但是我的服务器上有很多站点,我想知道,我应该为所有这些站点设置新的nginx服务器配置吗?我现在在做什么 我有Apache的所有虚拟主机条目的文件,有这样的东西:
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName sky2high.net
DocumentRoot /home/mainsiter/data/www/sky2high.net
</VirtualHost>
<VirtualHost *:8080>
ServerName surdo.asmon.ru
DocumentRoot /home/surdo/data/www/surdo.asmon.ru
</VirtualHost>
<VirtualHost *:8080>
ServerName surdoserver.ru
DocumentRoot /home/surdo/data/www/surdoserver.ru
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我在apache的ports.conf中有这个:
Listen 8080
Run Code Online (Sandbox Code Playgroud)
所以我设置了nginx来处理一个站点(sky2high.net),创建了下一个配置文件(/etc/nginx/sites-enabled/sky2high.net):
server {
listen 80;
server_name sky2high.net www.sky2high.net;
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
access_log /var/log/nginx.access_log;
location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /home/mainsiter/data/www/sky2high.net/;
index index.php;
access_log off;
expires 30d;
}
location ~ /\.ht {
deny all;
}
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
proxy_connect_timeout 60;
proxy_send_timeout …Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一个相当成熟/稳定且可免费获得的(最好是开源的)库,用于在.NET中执行AOP.我一直在寻找,发现下面的产品; 然而,他们中的大多数似乎死了:
PostSharp - 这是通常推荐用于.NET的AOP解决方案,但它是商业产品,因此适用某些使用限制.(但是,它似乎可以免费用于个人或开源项目.)
Spring.NET - 不仅仅是关于AOP,所以如果只想做AOP,它可能太强大了.(?)
策略注入应用程序块 - 来自Microsoft,我希望至少可以维护它.
Castle Windsor与 DynamicProxy一起- 主要不是AOP库,但显然它可以用于此目的.
方面# - 这对我来说似乎已经死了.
Aspect.NET - 对我来说这似乎也很糟糕.
NAop - 显然不再支持.
AOP.NET - 这应该是NAop的继承者,而且看起来它不久前就已经死了.
可能还有更多.从上面的列表中我可以看出,在.NET上进行AOP的唯一真正选择是PostSharp(即使它是商业产品),Spring.NET,微软的Policy Injection Application Block,或者也许是Windsor.
我忘记了任何重大选择吗?
另请参阅StackOverflow上针对C#的开源面向方面库的建议.我发布了一个新问题,因为我对.NET的各种AOP解决方案的开发/维护状态特别感兴趣.
我目前正在使用此代码
NSHost *host = [NSHost hostWithAddress:hostname];
if (host == nil) {
host = [NSHost hostWithName:hostname];
if (host == nil) {
[self setMessage:@"Invalid IP address or hostname:"];
return;
}
}
Run Code Online (Sandbox Code Playgroud)
检索我正在处理的网络应用程序的IP地址,但是我知道NSHost是一个将被拒绝的私有API.任何人都可以帮助我使用此代码生成相同的结果而不使用NSHost?我不确定从哪里开始.
编辑:
以下建议看起来非常接近完美,我已将此代码添加到我的应用程序中代替上面的代码
Boolean result;
CFHostRef hostRef;
CFArrayRef addresses;
NSString *hostname = @"www.apple.com";
hostRef = CFHostCreateWithName(kCFAllocatorDefault, (CFStringRef)hostname);
if (hostRef) {
result = CFHostStartInfoResolution(hostRef, kCFHostAddresses, NULL); // pass an error instead of NULL here to find out why it failed
if (result == TRUE) {
addresses = CFHostGetAddressing(hostRef, &result);
}
}
if …Run Code Online (Sandbox Code Playgroud) .net ×2
c ×2
c# ×2
aop ×1
apache ×1
double-click ×1
gcc ×1
git ×1
immutability ×1
iphone ×1
ld ×1
listbox ×1
listboxitem ×1
networking ×1
newlib ×1
nginx ×1
nlp ×1
nltk ×1
nshost ×1
python ×1
qlineedit ×1
qt ×1
qt-designer ×1
string ×1
winforms ×1