View Full Version : رويداد رسيدن پيام در indyclient
baby_tanhaa
سه شنبه 17 اردیبهشت 1387, 10:33 صبح
تو indyserver از طريق رويداد execute ميشه فهميد كه داده اي از كلاينت رسيده
اما ميخوام بدونم تو indyclient چه رويدادي واسه اينكار داريم
لطفا يكي راهنماييم كنه
babak_delphi
سه شنبه 17 اردیبهشت 1387, 14:27 عصر
در مثالهای INDY این کار را با استفاده از یک تایمر و کنترل ورودی انجام می دهد
اما به نظر من که کار جالبی نیست
من فقط این راه را بلدم از دوستان اگر کسی راه بهتری می داند لطفا معرفی کند.
baby_tanhaa
سه شنبه 17 اردیبهشت 1387, 15:53 عصر
ممنون بابك جان ولي فكر كنم اون جوري پيچيده ميشه و اگه در هر دو طرف برنامه هم از indyclient و هم از indyserver استفاده كنم رحتتر باشه
دوستان راه بهتري به نظرشون نميرسه ؟؟؟
فكر ميكردم دلفي زبان قوي اي هست ولي واقعا اينهمه ضعف جاي سئوال نداره ................
علی کشاورز
چهارشنبه 18 اردیبهشت 1387, 00:14 صبح
Off-topic:
فكر ميكردم دلفي زبان قوي اي هست ولي واقعا اينهمه ضعف جاي سئوال نداره ................
خواهشا هر بار هر جا گیر کردید، مطلب بی ربط ننویسید! جدیدا هر کی میاد کم اطلاعی، بی اطلاعی، کج فهمی یا هر چیز دیگه خودش رو به ابزاری که استفاده میکنه نسبت میده! یکی برنامه می نویسه و Access Violation میگیره، میگه دلفی ایراد داره! یکی نمیتونه یک کلمه رو در سورس Replace کنه، میگه دلفی ایراد داره، یکی وقت نمیزاره با Indy و نحوه کارش آشنا بشه، میگه دلفی ضعف داره! یکی توی سایت سوال می پرسه، جواب نمیگیره، میگه دلفی گیر داره! دلفی یا تیم سازنده آن مصون از اشتباه و خطا نیستند، ولی وظیفه هم ندارند بجای شما و امثال شما Document ها و Sample های مربوط به یک موضوع خاص را برای شما بخونند و خط به خط هم براتون تشریح کنند!
این چند وقته هر کی سوالش به جواب نمی رسه، یا از کاربران سایت شاکی هست، یا از دلفی. ماشاء احتمال اینکه ایراد از خودش باشه رو هم نمیده. نمی دونم واقعا اینجور پست ها زیاد شده، یا من این روزها زیاد چشمم به این چیزا میافته!
Touska
چهارشنبه 18 اردیبهشت 1387, 12:04 عصر
ممنون بابك جان ولي فكر كنم اون جوري پيچيده ميشه و اگه در هر دو طرف برنامه هم از indyclient و هم از indyserver استفاده كنم رحتتر باشه
دوستان راه بهتري به نظرشون نميرسه ؟؟؟
فكر ميكردم دلفي زبان قوي اي هست ولي واقعا اينهمه ضعف جاي سئوال نداره ................
من در مورد مشکل شما یک Sample با Source کامل در سایت قرار دادم .
لینک (http://barnamenevis.org/forum/showthread.php?t=52437&highlight=Chat)
کافی بود جستجو می نمودید.
baby_tanhaa
پنج شنبه 19 اردیبهشت 1387, 08:39 صبح
جناب كشاورز چرا داغ ميكني از قديم گفتن تا نباشد چيزكي مردم نگويند چيزها من قبلا با وي بي كار ميكردم كه گفتن دلفي بهتره اومدم سراغ دلفي اما مثلا همين موردو ميبينم تو وي بي خيلي راحت ميشه انجام داد درصورتي كه از هردلفي كاري پرسيدم راه حل درستي براش تو دلفي پيدا نكرد وقتي ميگن يه زبان خيلي قدرتمنده ديگه نبايد همچين چيزايي توشديده بشه بدميگم !!!
علی کشاورز
پنج شنبه 19 اردیبهشت 1387, 17:54 عصر
وقتي ميگن يه زبان خيلي قدرتمنده ديگه نبايد همچين چيزايي توشديده بشه بدميگم !
بستگی داره "این چیزها" چی باشه و منظور از "قدرتمند" چی باشه. وقتی شما (یا هر کی که ازش پرسیدید) اطلاعی درباره نحوه کارکرد Indy ندارید، دلفی براتون چی کار کنه؟! Help اش رو بهتون داده، Demo رو بهتون داده، سورس رو بهتون داده، حالا شما بلد نیستید باهاش کار کنید، ایراد از شما هست، یا از ابزاری که استفاده می کنید؟!
قرار نیست هر جا که به بن بست رسیدید، یک خط توضیح بنویسید که بهتون گفته بودند دلفی قوی هست، ولی شما عکس را متوجه شدید. اگر مشکل شما با دلفی سر همچین چیزهایی هست که اشکالش بیشتر به خودتون بر می گرده، کسی اصرار نکرده از این ابزار استفاده کنید. یا سعی کنید درس اونو یاد بگیرید و استفاده کنید، یا قید استفاده از اون رو بزنید و از ابزار دیگه ایی استفاده کنید.
merced
پنج شنبه 19 اردیبهشت 1387, 23:47 عصر
شما (baby tanha) بهتره از کامپوننت های ServerSocket و ClientSoket که با اضافه کردن بسته dclSokets.bpl در تب Internet دیده میشن استفاده کنی.
فکر کنم مشابه کامپوننت های VB باشه
ایندی با اون چیزی که تو ذهنته فرق داره. این برات راحت تره.
این قسمت اصلی کد استفاده از این دو کامپوننت :
var
Data: TMemoryStream
MyBuff: Array[0..65000] of Byte;
i: Integer;
Begin
Data := TMemory Stream.create ;
data.loadfrom ....
Data.Position := 0;
Data.Read(MyBuff, Data.Size);
ServerSocket1.Socket.Connections[n].SendBuf(MyBuff, Data.Size);
procedure TfMain.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
MyStream: TMemoryStream;
MyBuff: Array[0..4095] of byte;
b: Integer;
s : Byte ;
begin
b := Socket.ReceiveBuf(MyBuff, SizeOf(MyBuff));
MyStream := TMemoryStream.Create;
try
MyStream.Write(MyBuff, b);
finally
MyStream.Free;
end;
end;
baby_tanhaa
شنبه 21 اردیبهشت 1387, 16:30 عصر
شما (baby tanha) بهتره از کامپوننت های ServerSocket و ClientSoket که با اضافه کردن بسته dclSokets.bpl در تب Internet دیده میشن استفاده کنی.
فکر کنم مشابه کامپوننت های VB باشه
ایندی با اون چیزی که تو ذهنته فرق داره. این برات راحت تره.
با تشكر فراوان:بوس:
ميگم با اين كامپوننت كه شما معرفي كرديد نميشه استرينگ ارسال كرد؟؟
merced
یک شنبه 22 اردیبهشت 1387, 21:16 عصر
ServerSocket1.Socket.SendText(STR)
merced
یک شنبه 22 اردیبهشت 1387, 21:18 عصر
براي دريافت از در كلاينت در رويداد SocketClient1.Onread
s := Socket.ReceiveText
vBulletin® v4.0.8, Copyright ©2000-1391, Jelsoft Enterprises Ltd.