Server端如何接收Client端的字串 |
答題得分者是:is_tem
|
rockman326
一般會員 發表:6 回覆:2 積分:1 註冊:2007-02-28 發送簡訊給我 |
下面程式片段是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; // 處理 i:=0; j:=0; n1:=0; n2:=0; 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; if j<4 then begin try n1:=StrToInt(Trim(Copy(mStr,1,i-1))); n2:=StrToInt(Trim(Copy(mStr,i 1,Length(mStr)-i))); except j:=4; end; end; case j of 0: mRes:=IntToStr(n1 n2); 1: mRes:=IntToStr(n1-n2); 2: mRes:=IntToStr(n1*n2); 3: if n2=0 then mRes:='ERROR' else mRes:=IntToStr(n1 div n2); else mRes:='ERROR'; end; // 回覆 i:=uuTCPSocket.SendData(FSocket,mRes,C_MaxWait,true,#13); if i<0 then begin Log('回覆失敗: ' uuTCPSocket.GetErrorStr(i)); exit; end; Log('[' mStr ']=[' mRes ']'); end finally try CloseSocket(FSocket); except end; Log('結束服務'); end; |
is_tem
一般會員 發表:17 回覆:15 積分:11 註冊:2002-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |