用socket.sendtext傳送大量string的問題 |
答題得分者是:Ktop_Robot
|
takdick
一般會員 發表:50 回覆:63 積分:22 註冊:2002-08-05 發送簡訊給我 |
我的程序使用了clientsocket和serversocket,用socket.sendtext傳送大量的字符串時,不是是否有傳送限制,只能接收到前大部份的字串,改用sendbuf也是一樣的結果.
我試了一下,clientsocket傳送時的length(string)有2251,serversocket接收到的length(string)只有1415,只要小於此數的string就能正常接收,1415是否sendtext能夠傳送的極限?
還有一點,client和server都在同一主機運行時就沒有任何問題,但把server放在另一主機時就會出現上述問題,請問是何緣故?該如何解決呢? 我的接收代碼如下:
procedure TForm1.ssClientRead(Sender: TObject; Socket: TCustomWinSocket);
var stt,dd:string;
buf:pinter;
lh:integer;
begin
lh:=Socket.ReceiveLength;
GetMem(buf,lh);
Socket.ReceiveBuf(buf^,lh);
stt:=StrPas(PChar(buf));
stt:=Copy(stt,1,lh);
if stt='' then exit;
dd:=copy(stt,1,3);
cos:=copy(stt,4,length(stt)-3);
case strtoint(dd) of
111: begin //接收string
memo1.text:=cos;
end;
222: begin //還有其他的功能
......
........ 發表人 - takdick 於 2005/12/04 16:22:59
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |