DELPHI新手求救!!!救人哦!有關server端接收的問題... |
尚未結案
|
brad
一般會員 發表:4 回覆:6 積分:2 註冊:2005-03-11 發送簡訊給我 |
各位大大,我在寫一個server端接收的程式,假設client端一直傳送'0'過來,我在server端這收下後,我該怎樣去做接收的動作,然後,每四個0為一組,顯示在memo上面呢?不太會寫,這樣子雖然有接收到,但memo顯示出來的並不是4個0一組排列下去,請求各位協助,拜託!!!!!! 程式碼如下:
const
packetlen = 2048;
...
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
buffer : array[1..packetlen] of char;
i : integer;
temp : string;
begin socket.ReceiveBuf(buffer,length(buffer));
for i := 1 to 4 do
begin
temp := '';
temp := temp buffer[i]; if i = 4 then
begin
memo1.Lines.Add(buffer);
end;
end;
end; 希望結果: 0000
0000
0000
0000
0000
0000
0000
...
...一直顯示下去
|
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
var strBuf:String; //全域變數, 儲存目前未滿4個字元的string const packetlen = 2048; ... procedure TForm1.Create(Sender: TObject); begin strBuf:=''; //初始化 end; procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var buffer : array[1..packetlen] of char; i : integer; begin socket.ReceiveBuf(buffer,length(buffer)); for i := 1 to Length(buffer) do //將收到的buffer處理完 begin strBuf := strBuf buffer[i]; //一次將一個字元加入 if Length(strBuf)=4 then //滿4個字時印出並清空 begin memo1.Lines.Add(strBuf); strBuf:=''; end; end; end;@瞭解越多.懂得越少@ |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |