小编ulr*_*chb的帖子

TIdTCPServer有时不会从套接字读取数据

我在TIdTCPServer的OnExecute中有以下代码(随安装附带的Delphi 2009和Indy 10),这与本网站上的其他示例非常相似;

   Socket := AContext.Connection.Socket;
    if Socket.CheckForDataOnSource(10) then
    begin
      if not Socket.InputBufferIsEmpty then
      begin
        Socket.InputBuffer.ExtractToBytes(RawBytes, -1, False, -1);

        SetLength(Buffer, Length(RawBytes));
        Move(RawBytes[0], Buffer[1], Length(RawBytes));

        // Do stuff with data here...
      end;
    end;
    AContext.Connection.CheckForGracefulDisconnect;
Run Code Online (Sandbox Code Playgroud)

它有时不会读取数据,因为CheckForDataOnSource(10)返回False.但是,如果我在该行停止调试器,我可以看到我在InputBuffer的字节中发送的数据.是否还有其他任何我应该做的设置或其他方法来强制它一直工作.这段代码运行很多次但总是在CheckForDataOnSource(10)上失败.

另外作为旁注,我注意到Indy的代码周围有些人抓住了AContext.Connection.IOHandler而不是AContext.Connection.Socket并做了与上面的代码相同的事情,什么是"正确"的使用.

谢谢

布鲁斯

delphi indy delphi-2009

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

如何获取WCF服务的侦听地址/端口?

我有一个WCF服务侦听 Windows Service Registry中的动态分配端口.如何从另一个c#应用程序中找到此服务的侦听地址?或者至少是这项服务的端口?

谢谢,阿德里安娜

.net c# wcf

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

TWebBrowser是否更新了IE?

我在D7应用程序中使用TwebBrowser.问题是:当我升级我的IE时,这个组件会使用新的IE渲染页面吗?

delphi delphi-7

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

delphi comboBox

如何从delphi 7中获取组合框的选取值

让我们说它有项目,如何知道哪一行(项目)被选中?

delphi combobox delphi-7

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

metatables如何工作以及它们用于什么?

我有一个关于Lua metatables的问题.我听到并查看了它们,但我不明白如何使用它们以及用于什么.

lua programming-languages function roblox

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

是否有可能获得指针在Delphi 7中指向的类型的大小?

我希望在以下函数中获得任何"记录"类型的大小.但似乎它不起作用:

function GetDataSize(P : Pointer) : Integer;
begin
  Result := SizeOf(P^); // **How to write the code?**
end;
Run Code Online (Sandbox Code Playgroud)

例如,后续记录的大小为8个字节

SampleRecord = record
 Age1 : Integer;
 Age2 : Integer;
end;
Run Code Online (Sandbox Code Playgroud)

GetDataSize(@a)总是返回1(当然,a是SampleRecord类型的变量).我该怎么办?

我注意到Delphi有一个程序过程New(var P:Pointer),可以分配内存块对应P指向的类型的大小.怎么能达到这个尺寸?

delphi memory-management delphi-7

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

如何在Delphi 2010中设置待办事项列表类别

如何在Delphi 2010中设置待办事项列表类别.此语法不起作用:

// TODO 1 -cImportant: Do this!
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2010

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

检测陈旧的互斥锁

是否有任何技术或工具可用于在运行时检测此类死锁?

在工作线程(几个中的一个,通常是4-6)中描绘这个

try
   WaitForSingleObject(myMutex);
   DoSTuffThatMightCauseAnException;
except
   ReleaseMutex(myMutex);
end;
Run Code Online (Sandbox Code Playgroud)

或者更普遍的是有一种设计模式来避免这些错误吗?

经过长时间的黑客攻击,我在上面的代码中编写了上面的代码

delphi debugging multithreading delphi-2010

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

C#Collection - 按元素排序(旋转)

我有一个IEnumerable<Point>收藏品.可以说它包含5个点(实际上它更像2000)

我想订购这个集合,以便集合中的特定点成为第一个元素,因此它基本上是在特定点切割集合并将它们重新连接在一起.

所以我的5点清单:

{0,0}, {10,0}, {10,10}, {5,5}, {0,10}

关于索引3处的元素重新排序将变为:

{5,5}, {0,10}, {0,0}, {10,0}, {10,10}

什么是解决此问题的计算效率最高的方法,或者是否存在已经存在的内置方法......如果是这样,我似乎找不到一个!

c# collections

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

无法从Delphi资源文件中提取文件

我一直在使用FindResource,LoadResource和LockResource来访问res文件中的资源.我有一个wave文件,我想通过我的Delphi应用程序提取和播放.

我没有提取就完成了,但这不是我想做的事情.我想先提取波形文件.谁能指出我正确的解决方案?

delphi delphi-2010

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

为Delphi 7 IDE编写脚本

Delphi是否有能力编写IDE操作的脚本?我想在open delphi项目上执行脚本打开一些单元.我怎么能这样做

delphi scripting delphi-7

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

帮我理解c#中的这段代码

我无法阅读这行代码

public Wine (decimal price, int year) : this (price) { Year = year; }
Run Code Online (Sandbox Code Playgroud)

什么:this在构造函数中的关键字做

public class Wine
{
    public decimal Price;
    public int Year;

    public Wine (decimal price) 
    { 
        Price = price; 
    }

    public Wine (decimal price, int year) : this (price) 
    { 
        Year = year; 
    }
}
Run Code Online (Sandbox Code Playgroud)

c# constructor

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