עבור לתוכן

הגבלת מספר החיבורים ב- ServerSocket בJAVA.

Featured Replies

פורסם

שלום,

רציתי לדעת האם יש דרך להגביר את מספר החיבורים שיתקבלו בServerSocket?

(כך שבעת יצירת הSOCKET יזרק EXCEPTION או יוחזר NULL אם אין מקום, והחיבור לא יתבצע)

יש דרך אחרת לבצע את זה כך שהחיבור ממש יווצר ואני אשלח ללקוח הודעה שאין מקום, ואז לנתק אותו, אך הדרך הזו לא כל כך יפה. אני מחפש דרך אלגנטית יותר.

תודה.

פורסם

אתה פשוט יכול לשים קאונטר לפני שאתה נותן את ה accept..

או להגביל את המולטי ת'רד סרבר שלך.. שיספור כמה התחברו ובכמות מסויימת יסגור את הת'רד של ההתחברות.

פורסם
  • מחבר

במידה שאני לא אתן accept יהייה to כלשהו ויזרק exception בלקוח?

פורסם

ה-backlog ב-constructor קובע כמה חיבורים נכנסים יכולים להמתין עד שתטפל בהם, כך שזה לא מה שאתה רוצה.

כפי שכבר אמרת, לעשות accept ולסגור את החיבור זה לא כל כך לעניין. הדרך הכי "יפה", לדעתי, לדחות חיבור היא לשלוח הודעה שמפרטת את הסיבה שהשרת לא קיבל את החיבור - אחרת ללקוח אין שום מושג מה קרה. האם השרת בכלל רץ? אם לא אכפת לך מדרך "יפה" פשוט תסגור את ה-ServerSocket עד שיהיה צורך מחודש בקבלת חיבורים.

אני מניח שאין לך כאן בעיה של התקפות DoS וכו', כי אז הפתרונות יצטרכו להיות הרבה יותר עמידים.

פורסם

אתה יכול לנסות לבנות SocketFactory משל עצמך שיגביל את מספר הסוקטים שאפשר לפתוח בו"ז ולהשתמש בפונקציה setSocketFactory כדי לקשר אותו ל- ServerSocket מסויים.

דותן

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים