- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用此代码来接收数据:但这不行。你能帮我吗?
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
i:integer;
sRec : string;
begin
for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
begin
with ServerSocket1.Socket.Connections[i] do
begin
sRec:=ReceiveText;
if sRec <> '' then
begin
if RemoteAddress='192.168.0.1' then
begin
if ReceiveText='1' then
Btn1.Color:=clNavy;
ADOQuery1.Active:=True;
end;
if RemoteAddress='192.168.0.1' then
begin
if ReceiveText='2' then
Btn1.Color:=clRed;
Pnl1.Visible:=True;
end;
end;
end;
end;
end;
最佳答案
每当任何客户端发送数据时,您都会尝试从 TServerSocket.Socket.Connections 列表中的每个客户端连接读取数据。您应该改用事件提供的 TCustomWinSocket 参数。它告诉您正在发送数据的确切客户端。
您的代码中还存在一些其他逻辑错误。
试试这个:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
sRec : string;
begin
sRec := Socket.ReceiveText;
if sRec <> '' then
begin
if Socket.RemoteAddress = '192.168.0.1' then
begin
if sRec = '1' then Btn1.Color := clNavy;
ADOQuery1.Active := True;
if sRec = '2' then Btn1.Color := clRed;
Pnl1.Visible := True;
end;
end;
end;
或者也许您的意思更像是这样?
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
sRec : string;
begin
sRec := Socket.ReceiveText;
if sRec <> '' then
begin
if Socket.RemoteAddress = '192.168.0.1' then
begin
if sRec = '1' then begin
Btn1.Color := clNavy;
ADOQuery1.Active := True;
end
else if sRec = '2' then begin
Btn1.Color := clRed;
Pnl1.Visible := True;
end;
end;
end;
end;
关于delphi - TServerSocket 和 TClientSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4608533/
有这样的事吗?它需要是异步的(没有Indy)。 最佳答案 尝试HPScktSrvr-http://www.torry.net/pages.php?id=220#939383 关于delphi - 使用
我有一个 TserverSocket 和许多 TClientSocket。A 可以将所有客户端的文本发送到服务器并正确接收它。但问题是如何将不同的数据从 TServerSocket 发送到许多不同的客
我一直在尝试设置从 ReceiveText TClientSocket 函数恢复的字符数量的长度,但似乎没有任何效果。例如,从恢复的数据或其他数据流接收第一个最左边的字符。有没有办法在 Delphi
我正在尝试在运行时创建 TClientsocket,但无法分配事件。 我用 var cs:TCLIENTSOCKET; procedure OnReadx; begin end; procedur
我使用此代码来接收数据:但这不行。你能帮我吗? procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomW
大家好,我的任务是实现与服务器通信的协议(protocol)。我有一个难题,也许足够熟练的人可以启发我。当我连接到服务器时,我必须发送一个字节数组问题是当我使用它时我从服务器断开了 imediatle
在 resolution comments错误报告 12266 (“套接字连接错误导致资源泄漏”),Robert Ehteshamzadeh 写道 TClientSocket is deprecate
因此,我有一个 TClientSocket,它必须在一个 OnRead 事件中接收超过 10KB 的数据。但是,当事件被触发时,它只会获得 8KB 的数据,然后事件会再次触发并包含其余数据。 为什么会
我在使用 Borland/Embarcadero TClientSocket 组件时遇到了明显的句柄泄漏问题。我有一个创建多个 TThread 实例的应用程序,每个实例动态创建一个 TClientSo
在经历了 Eclipse、Emacs、Visual Studio 和记事本之后,我才开始熟悉 Embarcadero RAD Studio 2010 :) 我正在进入相当大的 C++ 应用程序(500
是否有一个解决方案可以在delphi的ScktComp.dcu中使用TServerSocket,让我可以将单个文件流或多文件流同步发送到多TClientSocket ...?我这里有这段代码: pro
有人可以解释一下他们的差异吗?它们相同并且工作方式相同吗?哪一个比其他组件更好? 最佳答案 它们不一样,而且工作方式也不同。它们对套接字 API 交互、事件处理、错误处理等采取非常不同的方法。 TCl
我正在尝试在多线程 C++ Windows 应用程序中以非阻塞模式使用 Borlands TClientSocket 组件。我正在创建多个线程(派生自 TThread 的类),每个线程都创建自己的 T
我是一名优秀的程序员,十分优秀!