線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3759
推到 Plurk!
推到 Facebook!

Socketconnection封装为DLL的问题

答題得分者是:sdlyzhlmxh
zyyjcking
一般會員


發表:1
回覆:2
積分:0
註冊:2007-04-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-19 10:36:17 IP:210.21.xxx.xxx 訂閱
现在公司要做一个项目,已经定下来用Socketconnection
当把SocketConnection封装到Dll中遇到一个问题
问题如下:
当客户端正在正常运行时(调用Dll中的Socketconnection),把Scktsrvr服务器强制关闭,此时客户端报“远程强迫关闭了主机”错误,然后客户端退出的时候没有响应
代码调试发现问题如下(部分代码):
DLL部分:
//初始化Socketconnection(诵姓?
function IniSckt(PApplication: THandle;ServerNameOrIP: WideString; ServerPort: integer): Boolean;
begin
try
Application.Handle := PApplication;
FServerNameOrIP := ServerNameOrIP;
FServerPort := ServerPort;
if not Assigned(Sckt) then
Sckt := TSocketConnection.Create(Application);
Sckt.Host := FServerNameOrIP;
Sckt.Port := FServerPort;
sckt.ServerGUID := '{D6B81A8D-6B7C-47EE-9EF4-2CAB04BDB5DA}';
sckt.open;
Result:=True;
except
Result:=False;
end;
end;

function FreeSckt: Boolean; stdcall;
begin
Result := False;
try
if assigned(sckt) then //显示Sckt.connected为True(这里应该为False才对,哪位大富翁能解答)
begin
sckt.connected:=False; //调试到这里就运行不了了(为什么会停在这呢?)
FreeAndNil(Sckt);
end;
Result := True;
except
end;
end;
EXE部分:
procedure TForm3.FormShow(Sender: TObject);
begin
if not IniSckt(Application.Handle, '127.0.0.1', 10001) then
begin
ShowMessage('连接服务器失败!');
abort;
end;
end
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FreeSckt;(客户端关闭的时候运行到这里就不动了,DLL中的代码见上面)
end;
各位帮帮忙看看啊,搞了好几天都没有头绪啊,实在是搞不定了,请求帮助。
sdlyzhlmxh
一般會員


發表:0
回覆:2
積分:5
註冊:2004-08-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-20 18:08:36 IP:60.213.xxx.xxx 訂閱
你的FreeSckt:过程是在哪调用的。
zyyjcking
一般會員


發表:1
回覆:2
積分:0
註冊:2007-04-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-23 15:51:22 IP:210.21.xxx.xxx 訂閱

===================引 用 sdlyzhlmxh 文 章===================
你的FreeSckt:过程是在哪调用的。
在FormClose中调用,也就是程序关闭的时候
zyyjcking
一般會員


發表:1
回覆:2
積分:0
註冊:2007-04-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-24 11:02:19 IP:218.19.xxx.xxx 訂閱
问题还没解决,请高手帮忙看看
系統時間:2024-04-24 8:41:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!