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

ClientSocket 傳送問題

答題得分者是:暗黑破壞神
JH
一般會員


發表:3
回覆:13
積分:3
註冊:2006-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-23 16:34:12 IP:60.248.xxx.xxx 訂閱
請問下面的程式碼有問題嗎?  為什麼傳不出去呢?

ClientSocket2->Address = "192.16.1.1";
ClientSocket2->Port = 1024;
ClientSocket2->Open();
Sleep(200);

ClientSocket2->Socket->SendText("123");
ClientSocket2->Active = true;
編輯記錄
taishyang 重新編輯於 2007-07-23 16:37:39, 註解 將文章分類成[問題]‧
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-23 17:10:23 IP:218.170.xxx.xxx 未訂閱

為什麼你認為傳得過去?

===================引 用 JH 文 章===================
請問下面的程式碼有問題嗎? 為什麼傳不出去呢?

ClientSocket2->Address = "192.16.1.1";
ClientSocket2->Port = 1024;
ClientSocket2->Open();
Sleep(200);

ClientSocket2->Socket->SendText("123");
ClientSocket2->Active = true;
JH
一般會員


發表:3
回覆:13
積分:3
註冊:2006-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-23 17:19:12 IP:60.248.xxx.xxx 訂閱
謝謝你的回應.

如果我把
ClientSocket2->Address = USIZyDasSyS.sSFISIP;
ClientSocket2->Port = USIZyDasSyS.iSFISPort;
ClientSocket2->Open();
寫到其他地方, 它就可以送的出去, 但是寫在一起就不行, 這是WHY?
JH
一般會員


發表:3
回覆:13
積分:3
註冊:2006-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-07-23 17:21:14 IP:60.248.xxx.xxx 訂閱
Sorry,
是:
ClientSocket2->Address = "192.16.1.1";
ClientSocket2->Port = 1024;
ClientSocket2->Open();
Sleep(200);
才是.

暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-07-23 18:42:31 IP:218.170.xxx.xxx 未訂閱
client connect to server. 需要時間。
在LAN也許 200ms 夠。
在 internet 不一定夠吧。

所以你寫在不同的地方可以動作。
你寫在一起。你根本就還沒等到它”連線”完成。就要它做什麼事。
它理你才有鬼勒。^_^
JH
一般會員


發表:3
回覆:13
積分:3
註冊:2006-07-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-07-23 18:50:20 IP:60.248.xxx.xxx 訂閱
Thanks for your answer.
<1> 其實我用debug mode 去一步一步執行, delay time 已經超過200msec. 它還是不行.
<2> 我看到 server 的狀態: 當Connect 寫在 form create的地方時, 他是OK, but 寫在一起時, 再送出 Active 時, 居然還多了一個 Connection 在Server端, This is Why?

===================引 用 暗黑破壞神 文 章===================
client connect to server. 需要時間。
在LAN也許 200ms 夠。
在 internet 不一定夠吧。

所以你寫在不同的地方可以動作。
你寫在一起。你根本就還沒等到它”連線”完成。就要它做什麼事。
它理你才有鬼勒。^_^
JH
一般會員


發表:3
回覆:13
積分:3
註冊:2006-07-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-07-23 18:57:23 IP:60.248.xxx.xxx 訂閱
我的目的是:  送完訊息就斷線, 要送時,再連線.   所以會須要這樣子.

===================引 用 JH 文 章===================
Thanks for your answer.
<1> 其實我用debug mode 去一步一步執行, delay time 已經超過200msec.?它還是不行.
<2> 我看到 server 的狀態: 當Connect 寫在 form create的地方時, 他是OK,? but 寫在一起時, 再送出 Active 時, 居然還多了一個 Connection 在Server端, This is Why?

===================引 用 暗黑破壞神 文 章===================
client connect to server. 需要時間。
在LAN也許 200ms 夠。
在 internet 不一定夠吧。

所以你寫在不同的地方可以動作。
你寫在一起。你根本就還沒等到它”連線”完成。就要它做什麼事。
它理你才有鬼勒。^_^
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-07-23 19:29:10 IP:218.170.xxx.xxx 未訂閱
想想我說的話。看看 client 元件的 event 有那個可以讓你用的。
去試一試看。
JH
一般會員


發表:3
回覆:13
積分:3
註冊:2006-07-06

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-07-23 19:53:02 IP:60.248.xxx.xxx 訂閱
Thanks for your answer.

I thought that I found out the real root cause, that is add a line Application->ProcessMessage() after ClienrSocket->Open(). it can work.

Thank you, 版主
===================引 用 暗黑破壞神 文 章===================
想想我說的話。看看 client 元件的 event 有那個可以讓你用的。
去試一試看。
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-07-24 08:10:39 IP:220.132.xxx.xxx 未訂閱

===================引 用 暗黑破壞神 文 章===================
想想我說的話。看看 client 元件的 event 有那個可以讓你用的。
去試一試看。

dear JH :

有一個事件,你可以研究,試看看。
ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket);
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-07-24 08:18:31 IP:218.170.xxx.xxx 未訂閱
呵。他說解決了就讓他解決了吧。
等他換了個環境問題就會再出現。
沒遇到問題。不會學到東西。

===================引 用 salo0610 文 章===================

dear JH :

有一個事件,你可以研究,試看看。
ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket);
JH
一般會員


發表:3
回覆:13
積分:3
註冊:2006-07-06

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-07-24 09:29:03 IP:60.248.xxx.xxx 訂閱
謝謝你們的回覆.

是的,我是利用 Connect 的Event 去得到連線時的 Socket, 再利用Application->ProcessMessage() 就解決我的問題了.

===================引 用 暗黑破壞神 文 章===================
呵。他說解決了就讓他解決了吧。
等他換了個環境問題就會再出現。
沒遇到問題。不會學到東西。

===================引 用 salo0610 文 章===================

dear JH :

有一個事件,你可以研究,試看看。
ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket);
cuteysc
初階會員


發表:16
回覆:37
積分:35
註冊:2003-05-28

發送簡訊給我
#13 引用回覆 回覆 發表時間:2007-08-15 04:14:54 IP:61.217.xxx.xxx 訂閱
ClientSocket2->Active = true;

根本不必存在

當你 SendText 的之後, 字串就立刻傳送過去了

Active=true 跟 Open() 函式是一樣的功能

相反的 Active=false 等於 Close()

===================引 用 JH 文 章===================
謝謝你們的回覆.

是的,我是利用 Connect 的Event 去得到連線時的 Socket,? 再利用Application->ProcessMessage()?就解決我的問題了.
系統時間:2024-04-25 21:48:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!