WinSock在BUFFERSIZE能多大(附代码) |
缺席
|
aKnightChen@Hotmail.com
一般會員 發表:62 回覆:57 積分:23 註冊:2003-06-13 發送簡訊給我 |
SOCKET_BUFFER_SIZE=1024,在局域网内大于1024没问题,但在INTERNET上则会出错.是不是用UDP能大一点.
我的TCP测试速度(宽带只有1K/S)
哪位大哥指点一下,是BUFFERSIZE问题? ============ procedure pDownLoadData(Socket: TCustomWinSocket);
var
tmpBuf:array [0..SOCKET_BUFFER_SIZE-1] of Char;
//SOCKET_BUFFER_SIZE=1024,在局域网内大于1024没问题,但在INTERNET上则会出错.
iReceiveLength:Integer;
sTmpInfo:string;
begin
with FrmDataExchangewithMainShop do
begin
with Socket do
begin
Application.ProcessMessages; iReceiveLength:=ReceiveLength;
ReceiveBuf(tmpBuf,iReceiveLength); aFileStream.Write(tmpBuf,iReceiveLength);
iReceiveFileSize:=iReceiveFileSize iReceiveLength; if iReceiveFileSize>=iTotalReceiveFileSize then
begin
//表示全部完成..
sTmpInfo:='xxxx!';
pAddMsg(sTmpInfo);
SendText(CMD_CLIENT_FINISH_RECEIVE_FILE sTmpInfo); FreeAndNil(aFileStream);
vStreamStatus:=False;
//完成文件传送
FreeAndNil(tmpConn);
if not pUNZipFile(sTmpAccFile,sGetTmpDir) then
begin
pAddMsg('接收的文件解压缩失败! 接收文件:' sTmpAccFile);
pSetEnabled2(True);
Exit;
end; DeleteFile(sTmpAccFile);
kSleep(1000); //开始处理数据
iType:=0;
sSrcTmpAccDBFile:=sGetTmpDir SERVER_TMP_MDB_FILE_NAME;
if fLoadSubShopDataFromAFileOnSub then
FrmMain.dxBarButton92Click(nil); //刷新一次性信息.
if Connected then
pSetEnabled2(True);
end
else
begin
SendText(CMD_CLIENT_ALLOW_SERVER_NEXT_DOWNLOAD);
end;
end;
end;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |