问题列表 - 第31495页

当使用Winsock读取所有信息时,结束"recv()"循环

我在winsock的recv()循环中遇到了问题.我试图在iResult == 0时终止循环,但是,循环仅在套接字关闭时结束.它似乎挂在最后一个recv(),其中iResult等于0.那么有关如何有效终止循环的任何想法?我的最终目标(无论iResult是否= 0;或许我的方法是错误的)是在读取所有发送的信息时停止循环.这是循环.

    do
    {
        iResult = recv(socket, recvbuf, BUFLEN-1, 0);
        if(iResult > 0){
            // Null byte :)
            // Remove that garbage >:(
            recvbuf[iResult] = '\0';
            printf("Recvbuf: %s\n\n\niResult: %d\n",recvbuf,iResult);
            continue; // working properly
        }
        else if(iResult == 0)
            // Connection closed properly
            break;
        else
        {
            printf("ERROR! %ld",WSAGetLastError());
            break;
        }
    } while(iResult > 0);
Run Code Online (Sandbox Code Playgroud)

就像我说的,我收到的所有数据,我都无法退出循环.下一步是将数据写回服务器,但它会挂起,直到ping超时.套接字是SOCK_STREAM,BUFLEN定义为0x200

谢谢

c++ windows winapi winsock recv

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

Java:在System.setOut之后写入真正的STDOUT

我试图拦截System.out和System.err,但保持在必要时直接写入原始流的能力.

PrintStream ps = System.out;
System.setOut(new MyMagicPrintStream());
ps.println("foo");
Run Code Online (Sandbox Code Playgroud)

不幸的是,System类实现的细节意味着在我的例子中,"foo"被发送到真正的stdout的MyMagicPrintStream instread.有谁知道如何获得真实/原始OutputStreams的引用.

谢谢!

PS:否则会导致StackOverflowError < - 用于SEO.

java

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

找到通过管道传输到zcat然后到头的结果

我正在尝试在很多gziped csv文件中搜索某个字符串,该字符串位于第一行,我的想法是通过组合find,zcat和head来获取每个文件的第一行.但我不能让他们一起工作.

$find . -name "*.gz" -print | xargs zcat -f | head -1
20051114083300,1070074.00,0.00000000
xargs: zcat: terminated by signal 13

example file:
$zcat 113.gz | head
20050629171845,1069335.50,-1.00000000
20050629171930,1069315.00,-1.00000000
20050629172015,1069382.50,-1.00000000
 .. and 2 milion rows like these ...
Run Code Online (Sandbox Code Playgroud)

虽然我通过编写bash脚本,遍历文件并写入临时文件来解决问题,但知道我做错了什么,怎么做以及是否有其他方法可以解决问题会很棒.

unix bash pipe zcat

11
推荐指数
1
解决办法
8041
查看次数

键盘上的内存泄漏消失

我有一个显示UITextField的视图控制器.我在这里带键盘

- (void)viewDidAppear:(BOOL)animated
{
    [wordTextField becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

然后我有按钮,它关闭键盘而不关闭控制器本身:

- (void)cancel:(id)sender
{
    if([wordTextField isFirstResponder])
    {
        [wordTextField resignFirstResponder];
    }

}
Run Code Online (Sandbox Code Playgroud)

在此仪器将显示泄漏

#   Category    Event Type  Timestamp   RefCt   Address Size    Responsible Library Responsible Caller
0   Malloc 128 Bytes    Malloc  00:11.239   1   0x3b82550   128 UIKit   UIKeyboardInputManagerClassForInputMode
Run Code Online (Sandbox Code Playgroud)

[wordTextField resignFirstResponder]提到的堆栈中的某个地方.

即使我自己不带键盘并让用户触发它,我仍然有泄漏.在这种情况下,堆栈中提到的代码没有任何内容.

iphone memory-leaks

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

为什么IJavaProject.findPackageFragmentRoots返回一个空数组?

每次我调用IJavaProject.findPackageFragmentRoots(IClasspathEntry cpe)并传递一个类CPE_PROJECT的IClasspathEntry时,它返回一个空列表.我暂停调试器并在Eclipse Display视图中运行以下行以查看发生了什么:

IClasspathEntry cpe = javaProject.getRawClasspath()[8];
cpe.toString();
    (java.lang.String) /Some Project[CPE_PROJECT][K_SOURCE][isExported:false][combine access rules:false]

// Show that the referenced project exists and has a root containing source
IClasspathEntry cpe = javaProject.getRawClasspath()[8];
IProject someProject = ResourcesPlugin.getWorkspace().getRoot().getProject(cpe.getPath().toString());
IJavaProject someJavaProject = (IJavaProject) someProject.getNature(JavaCore.NATURE_ID);
IPackageFragmentRoot pfr = someJavaProject.getPackageFragmentRoots()[0];
new Boolean(pfr.getKind() == IPackageFragmentRoot.K_SOURCE).toString();
    (java.lang.String) true

IClasspathEntry cpe = javaProject.getRawClasspath()[8];
javaProject.findPackageFragmentRoots(cpe);
    (org.eclipse.jdt.core.IPackageFragmentRoot[]) []
Run Code Online (Sandbox Code Playgroud)

类路径条目是Java项目的类路径的一部分,它的类型为CPE_PROJECT.此外,引用的Java项目(标题为"Some Project")至少有一个包含源的根.根据IJavaProjectjavadoc,它似乎应该返回至少一个IPackageFragmentRoot,但它不会.

知道我在这里误会了什么吗?如何从CPE_PROJECT类型的IClasspathEntry获取IPackageFragmentRoots而不做一些hackish?(我的意思是,我可以从类路径条目中获取IJavaProject并遍历其原始类路径,忽略未导出的条目,以搜索IPackageFragmentRoots.)

java eclipse eclipse-plugin eclipse-jdt

32
推荐指数
1
解决办法
1297
查看次数

当页面加载图像时,它只加载一次,还是每次加载标记时?

当页面加载图像时,它只加载一次,还是每次加载标记时?那jquery呢,附加一个img会导致它重新加载吗?我问这个是因为我有一个高分辨率图像,但需要你在标记的许多实例中使用它.

<img src="hello.jpg" />
<img src="hello.jpg" />
<img src="hello.jpg" />


var myimg = $('<img src="hello.jpg />');
$('img').append(myimg);
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

在这种情况下,Paxos代理的正确行为是什么?

我正在研究Paxos,我对算法在这个人为的例子中应该如何表现感到困惑.我希望下面的图解释了这个场景.

替代文字

几点:

  • 每个代理都充当提议者/接受者/学习者
  • 准备消息有形式 (instance, proposal_num)
  • 建议消息有形式 (instance, proposal_num, proposal_val)
  • Server1和Server2都决定同时启动提案流程
  • 在开始时,消息M1,M2和M3同时发生

在这里似乎虽然协议是"正确的",即只S2选择了一个值,但Server1和Server2认为它是因为提议编号不同而被选中的.

Paxos算法是否仅在将Decide(...)消息发送给学习者时终止?我必须误解Paxos Made Simple,但我认为,当提议者达到他们的Propose(...)消息的法定人数时,就做出了选择.

如果仅在将Decide(...)消息发送给代理之后才进行选择,那么Server2应该Decide(1, 5, S2)在它恢复时终止其发送,因为它稍后会看到它Prepare(1, 7)吗?

algorithm distributed consensus paxos

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

有关在asp.net中显示用户消息的好方法的建议吗?

我有一个充满页面和用户控件的应用程序,其中许多都有一个或多个标签控件,用于向用户显示各种不同的消息.

示例:通常在Company.aspx页面上使用的AddCompany.ascx用户控件(使用App.Master MasterPage)上面有一个名为"OutOfCreditLabel"的标签,其中包含Text ="错误:您无法创建新公司,因为您已经出局信用".代码检查信用额度并在需要时显示标签.

我想摆脱所有这些标签,只是有一个我可以从任何地方调用的方法

ShowUserMessage("Text goes here");
Run Code Online (Sandbox Code Playgroud)

在之前的项目中,我已将其实现为母版页上的单个标签和.master.cs中的公共方法 - 只要页面具有该行

<%@ MasterType VirtualPath="~/App.master" %>
Run Code Online (Sandbox Code Playgroud)

在它,这工作 - 但我无法让它在用户控件(.ascx.cs)上工作.这有诀窍吗?

或者,还有更好的方法?

对于可在网站中的任何位置使用的"全局"用户消息方法,您会建议什么?

也许是任何不错的jQuery解决方案?

更新
RPM1984已要求进一步澄清,所以我试图以不同的方式问这个问题:

我需要一个方法,我可以从代码隐藏(页面或用户控件)调用,然后将显示我指定给用户的任何文本,例如stackoverflow在您下次访问网站时如何告诉您有关问题的新答案.它可以在窗口的顶部(如SO)或页面的某个位置,无关紧要.重要的是它是一种"全局"方法,而不是各种javascript警报和asp:标签遍布项目中的每个其他页面和用户控件.

像这样的场景:

用户单击我页面上"widget manager"用户控件上的"Create Widget"按钮.在事件处理程序中:

if (User.IsOutOfCredit)
{
    ShowUserMessage("Sorry, you cannot create widgets; you are out of credit.");
}
Run Code Online (Sandbox Code Playgroud)

这导致用户看到"抱歉,你不能创建小部件;你没有信用." 无论是在某个页面的弹出页面还是红色文本中,或者像StackOverflow一样在顶部,一切都很好

那有意义吗?

asp.net user-interface user-controls master-pages

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

如何使用Javascript检索<video>元素的长度(以秒为单位)?

我有一个<video>id为"liveVideo" 的标签.如何在几秒钟内检索视频的长度?

谢谢,

大卫!

html javascript jquery html5 html5-video

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

/res/layout/main.xml是描述View还是ViewGroup?

main.xml看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
>
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

由于根元素是a LinearLayout,它扩展了ViewGroup,为什么main.xml变成a View而不是ViewGroup?例如,在我的主Activity类中,我尝试获取LinearLayout包含的子视图的数量,如下所示:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ViewGroup vg = (ViewGroup) findViewById(R.layout.main);
    Log.v("myTag", "num children: " + vg.getChildCount());
Run Code Online (Sandbox Code Playgroud)

但是当我打电话时它崩溃了vg.getChildCount().

这样做的正确方法是什么?

java layout android view

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