廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4140 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
rockman326
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x21
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[Delphi][求助] Server端如何接收Client端的字串
下面程式片段是Server端接收Client端的四則運算做處理之後再回傳Client端
我想再做一個接收字串的值,類似聊天室的功能,之前都是卡在開始服務後就
沒有處理了,請問我應該怎麼做才能接收到Client端的字串值呢

try
Log('開始服務');
while not self.Terminated do
begin
// 讀取
i:=uuTCPSocket.ReadData(FSocket,mStr,0,0,#13);
if i<0 then begin Log('讀取失敗: '+uuTCPSocket.GetErrorStr(i)); exit; end;
delete(mStr,1,1);
// 處理
i:=0; j:=0; n1:=0; n2:=0;
while true do
begin
j:=0; i:=Pos(& ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



[ 此文章被rockman326在2007-03-02 18:17重新編輯 ]



獻花 x0 回到頂端 [樓 主] From:臺灣中華HiNet | Posted:2007-02-28 18:48 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

while true do
  begin
  j:=0;   i:=Pos('+',mStr); if i>0 then break;
  inc(j); i:=Pos('-',mStr); if i>0 then break;
  inc(j); i:=Pos('*',mStr); if i>0 then break;
  inc(j); i:=Pos('/',mStr); if i>0 then break;
  inc(j);
  end;
上面程式如果Client沒有送+-*/不就變成無限迴圈了嗎?
只要再加一個 break; 在 end; 就好了, 那麼字串就是 j=4
只是你輸入的字串不能包含 +-*/ 不然就變成計算了


獻花 x0 回到頂端 [1 樓] From:台灣中華電信 | Posted:2007-03-01 00:28 |
rockman326
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x21
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

是的,Client端要送出+-*/ Server端才會處理,參數mStr是從Client端所得到的字串,目前字串已經能接收到了,卡在最後的"回覆"Log,請問要怎麼改才能將四則運算和接收訊息的Log分離呢?


獻花 x0 回到頂端 [2 樓] From:臺灣中華HiNet | Posted:2007-03-02 12:28 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

不太懂!? 你不是有 j = 4 為字串了嗎?


獻花 x0 回到頂端 [3 樓] From:台灣中華電信 | Posted:2007-03-02 15:28 |
rockman326
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x21
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

j=4會跳到else mRes:='ERROR'

我修改了一下原程式,請問如果POS第五行i:=Pos(' ',mStr); if i>0 then break;(這行是Client端接收到的字串),要怎麼修改才能跳到case j of 4: mRes:=mStr;

假設我從Client發了一個字串"How are you?"那麼"How are you?"這個字串就會存在mStr裡


[ 此文章被rockman326在2007-03-02 17:14重新編輯 ]


獻花 x0 回到頂端 [4 樓] From:臺灣中華HiNet | Posted:2007-03-02 16:46 |
rockman326
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x21
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

謝謝cmovies大大的回答,已解決,我再修改原程式


獻花 x0 回到頂端 [5 樓] From:臺灣中華HiNet | Posted:2007-03-02 18:16 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.095014 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言