PDA

View Full Version : سوال: محدودیت در ارسال داده های رشته ای توسط WriteLn



مهران رسا
چهارشنبه 23 تیر 1389, 14:06 عصر
سلام ؛

در Indy با استفاده از متد WriteLn برخی رشته های ارسالی در زمان دریافت در سرور دچار مشکل میشن . برای مثال من سعی کردم محتویات یک فایل اجرایی رو به صورت زیر ارسال کنم :



Ms.LoadFromFile(FileAddress);

Ms.Read(B, Chunk);

for j := low(B) to high(B) do
begin
Part := Part + chr(B[j]);
end;
FileClient.IOHandler.WriteLn(Part);
هم زمان با زیر نظر گرفتن عملیات با یک Sniffer نتایج زیر حاصل شد :



MZ?.........yy..,.......@......................... ..........,.....o..?.I!,.LI!This program cannot be run in DOS mode....$.......??uUEe??Ee??Ee??H???Ee??co??Ee??"o??Ee??RichEe??........PE..L...y.AK........a...... ...... ......(........ ....@..........................@......IO.......... ............................t...(....0..,......... .................................................. ........(... .......t............................text...A...... ..................... ..`.data...U.... ....... ..............@..A.rsrc...,....0.......0.......... ....@..@lU[J............MSVBVM60.DLL......................... .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. .....................
همونطور که مشاهده میکنید کاراکتر هایی که به شکل استاندارد خود نیستن در قالب "?" در اومدند . ضمناً این Sniffer به طور خودکار کاراکترهایی که در صفحه نمایش قابل مشاهده نباشند رو با نقطه(.) مشخص میکنه . برای مثال ممکنه یکی از اون نقطه ها اسکی صفر(0) باشه .

شاید هم روش دسترسی به فایل و خواندن از اون اشتباه باشه اما در کل هدف این هست که اطلاعات بدون هیچگونه تبدیلی در همین قالبی که در فایل هستند ارسال بشند .


http://plogger.ir/up/2010-7/3836953313275.png


ممنون میشم راهنمایی بفرمایید .