ورود

View Full Version : Java Socket Programming



minoooo
چهارشنبه 04 اسفند 1389, 18:14 عصر
سلام ،من برنامه چتی نوشتم که بخش client فلش است و بخش سرور هم جاوا!
برای اینکه بتونم تشخیص بدم ،که کاربر مرورگر را بسته یا خیر (مزیتش برای حذف سوکت اون کاربر است ...)
کدی به شکل زیر نوشتم :
short iMesgLength = (short)(line.length());
debug("ff"+iMesgLength);
if(iMesgLength ==1){
//do it...
}

یعنی وقتی کاربر مرورگر را ببندد ، مقداری که از سوکت خوانده میشه ،1 است .
سوال 1، آیا این راه حل درست است ؟ یا به طور تصادفی است که کار می کند ؟
سوال 2، متوجه شدم در برنامه وقتی طول رشته ای که سوکت می خواند ، کمتر از 28 است ،با خطای Exception (run)
مواجه میشوم . آیا راهی برای فیلتر کردن این داده ها وجود دارد؟
با تشکر

javaphantom
پنج شنبه 05 اسفند 1389, 08:53 صبح
سلام ،من برنامه چتی نوشتم که بخش client فلش است و بخش سرور هم جاوا!
برای اینکه بتونم تشخیص بدم ،که کاربر مرورگر را بسته یا خیر (مزیتش برای حذف سوکت اون کاربر است ...)
کدی به شکل زیر نوشتم :
short iMesgLength = (short)(line.length());
debug("ff"+iMesgLength);
if(iMesgLength ==1){
//do it...
}

یعنی وقتی کاربر مرورگر را ببندد ، مقداری که از سوکت خوانده میشه ،1 است .
سوال 1، آیا این راه حل درست است ؟ یا به طور تصادفی است که کار می کند ؟
سوال 2، متوجه شدم در برنامه وقتی طول رشته ای که سوکت می خواند ، کمتر از 28 است ،با خطای Exception (run)
مواجه میشوم . آیا راهی برای فیلتر کردن این داده ها وجود دارد؟
با تشکر

ما بحثی داریم در socket progamming به نام keep alive راه حل مشخصی داره و شما باید اون رو پیاده سازی کنید.
بطور خلاصه اگر بخوابم بهش اشاره کنم اینه که شما باید متوجه باشد که مسیر و جریان clientو server همیشه چه وضعیتی داره.
به این سایتها نگاه کنید

http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/programming.html
http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO