دستوری بجای ReadLn در شبکه ایندی که بجای لاین با دریافت کلمه پایان پذیرد
با سلام
من از ایندی سرور استفاده میکنم. میخوام متنی که به سرور ارسال میشه بجای اینکه مثلا رفتن به خط بعد ReadLn
انجام میده ، با دریافت یک کلمه بعنوان پایان پیام ، اون را درنظر بگیره و وقتی اون کلمه رو گرفت بفهمه آخر پیامه.
دوستان و اساتید بزرگوار اگه میشه راهنمایی بفرمائید. ممنون:تشویق:
نقل قول: دستوری بجای ReadLn در شبکه ایندی که بجای لاین با دریافت کلمه پایان پذیرد
سوالتون رو باید د بخش شبکه ایجاد میکردید.
راحتترین روش برای این مورد استفاده از کامند هندلر هست.تحقیق کنید.
نقل قول: دستوری بجای ReadLn در شبکه ایندی که بجای لاین با دریافت کلمه پایان پذیرد
ممنون از راهنمائیتون. :تشویق:
ولی من قراره فقط گیرنده تکست ارسالی کاربر باشم و بدون ارسال چیزی متن مورد نظر برام ارسال میشه و مشکل اینه که پس از پایان پیام فقط یک عبارت مشخص (مثلاً EEEEE) که نشاندهنده اتمام پیام هست ارسال میشه و چون در سیستم ارسال کننده پایان خط درنظر گرفته نشده لذا وقتی من از دستور readLn استفاده میکنم مقداری از عبارت میمونه تا خط بعد که سری بعد ارسال میشه. من میخوام منتظر خط بعد نشه.
نقل قول: دستوری بجای ReadLn در شبکه ایندی که بجای لاین با دریافت کلمه پایان پذیرد
متد ReadLn که ازش صحبت میکنید یه overload دیگه داره با این ساختار :
function ReadLn(ATerminator: string; AByteEncoding: TIdTextEncoding
{$IFDEF STRING_IS_ANSI}; ADestEncoding: TIdTextEncoding = nil{$ENDIF}
): string; overload;
احتمالا تو نت هم براش مثال پیدا میشه .
مورد بعد هم مجبور نیستین از این متد استفاده کنید ، متد ReadBytes هم داره که میتونید تو یه حلقه بینهایت بخونید تا متن تمام کننده رو دریافت کنید و بعد از حلقه خارج بشید .
روش های دیگه هم هست ولی همینا کارتون رو راه میندازه .
نقل قول: دستوری بجای ReadLn در شبکه ایندی که بجای لاین با دریافت کلمه پایان پذیرد
ممنون از راهنمائیتون :تشویق:
من با نوشتن همون دستور ReadLn به شکل زیر حلش کردم:
AThread.Connection.Readln('EEEEE')