PDA

نسخه کامل مشاهده نسخه کامل : ارسال و دریافت IP با ServerSoket



skmkh6056
18-05-2008, 08:10
من از ServerSoket استفاده میکنم و می خواهم وقتی چیزی برا کسی میفرستم IP خودم را هم براش بفرستم.
من برنامه ای میخوام مثله برنامه چت بنویسم که وقتی کاربر روی سوکت چیزی ارسال میکنه همه بتونن دریافت کنن اما IP شخص ارسال کننده مشخص باشه.
مر30

romixery
18-05-2008, 09:35
قبلاً لینکی رو معرفی کرده بودم. اگه توجه می کردی در اون بود
پست من رو توی این تاپیک بخون:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در رویداد OnclientRead برای TServersocket این کد رو بنویس:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
توجه کن: خطی که در اون نوشته شده ('Memo1.Lines.Add(RemoteAddress + ' sends می تونه آپی هر کی که پیغام رو فرستاده منتقل کنه. کلاً برای فرستادن آی پی می تونی از کد زیر استفاده کنی:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشی

skmkh6056
19-05-2008, 07:58
من اصلا شی TServerSocket را ندارم. یعنی نمیتونم همچین جزئی را رو فرمم بذارم. مجبورم اونو تو کدهام Create کنم. میشه بگین چطوری رو فرمم بذارم. البته تمام شی ها رو نگاه کردم. اصلا موجود نیست و نمیدونم از کجا باید Add کنم. مر30

romixery
19-05-2008, 10:00
معلومه که شما به پست من توجه نکردین.
من که یه لینک گذاشتم و گفتم که اولین پستم رو توی این تاپیک ببینید. توی اون نوشتم چجوری باید این کامپوننت رو Add کنید. وقتی که Add کردین توی تب Internet میاد.
من توی دلفی 7 امتحان کردم. نسخه های بالاتر رو نمی دونم.

skmkh6056
19-05-2008, 10:13
مرسی حل شد. دوست عزیز از توجهتان ممنونم. یه سوال دیگه
من میخوام از هر کامپیوتری که بهم پیغام میاد جوابشو بدم. من این کارو میکنم ولی از سیستم دوم پیغام میاد جواب را که ارسال میکنم به سیستم اول برمیگرده. اگه نیاز بود بگین تا کد برنامه را براتون بذارم.
چون من این برنامه را برا جایی دارم کار میکنم که :
20 کامپیوتر به صورت داخلی شبکه هستن. هر کاربر رو سیستم خودش اجرا کنه و هر پیغامی که میاد به همون کاربر جواب بده. مرسی

romixery
19-05-2008, 17:38
سلام
براي اين كار بايد توي برنامه يه كمي تغيير بدي. حالا كارايي كه من مي گم رو انجام بده:
يه كليد در قسمت سرور بساز كه با فشار دادن اون، جواب متن ارسالي از طرف Client رو بدي.
توجه كن كه اين كد وقتي مفيده كه حداقل يه پيغام از طرف Client به طرف سرور فرستاده شده باشه. در قسمت Private فرمت يه متغير از نوع String به هر نامي (من RemAdd رو انتخاب كردم) تعريف كن. در رويداد On Client Read براي TServerSocket اين كد رو اضافه كن.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

يه EditBox هم براي نوشتن متن ارسالي به Client درست كن. اسمش رو بزار مثلاً ClientText.
حالا توي كليد اين كدها رو بنويس:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اينا سمت Server بود. حالا سمت كلاينت هم يه Memo بساز. و در قسمت Onread براي TClientSocket‌ اين كد رو بنويس:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اينجوري تو مي توني به آخرين كلاينتي كه برات Message فرستاده، پيغام بدي.
موفق باشي.

skmkh6056
20-05-2008, 07:40
حل نشد. به کاربر اول جواب داد ولی به کاربر دوم جواب نداد.
اجازه بدین دوباره مسئله را توضیح بدم.
من هدفم نوشتن برنامه چت هست. میخوام همه کاربران شبکه(داخلی) همه روی یه پورت lestion باشند. بعد هر کاربر به هر کسی که پیغام میده(هر IP) طرف مقابل بتونه جوابشو بده. مر30

romixery
20-05-2008, 08:48
حل نشد. به کاربر اول جواب داد ولی به کاربر دوم جواب نداد.
اجازه بدین دوباره مسئله را توضیح بدم.
من هدفم نوشتن برنامه چت هست. میخوام همه کاربران شبکه(داخلی) همه روی یه پورت lestion باشند. بعد هر کاربر به هر کسی که پیغام میده(هر IP) طرف مقابل بتونه جوابشو بده. مر30
بيبينيد دوست من. من كه گفتم اين كد به آخرين Client ي كه پيغام رو ارسال كرده باشه جواب ميده.
بيبينيد، اگه بخواين كه اينجوري نباشه، ابتدا بايد يه ليست باكس درست كنيد، (سمت سرور) بعد ليست IP يا نام همه Client ها رو در اون وارد كنيد. بعد شما ميتونيد با انتخاب هر كلاينت پيغامي براي اون بنويسين. گفتم كه اين كد به آخرين Client پيغام مي فرسته.
من اين برنامه رو درست كردم. دانلود كنين ببينين بدردتون مي خوره يا نه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشين