עבור לתוכן

איזה פרוטוקול תקשורת מתאים עבור גישה ישירה לקבצים במחשב אחר, כולל האפשרות לבצע Seek?

Featured Replies

פורסם

שלום

אני אתן דוגמא, כדי להעביר את מה שאני צריך.

תניחו שיש לכם מחשב אחד, עליו יש קובץ גדול כלשהו, כמו סרט, או כמו קובץ טקסט גדול מאד(למשל 1GB),

ועכשיו אתם רוצים לפתוח את הקובץ הזה עם התוכנה המתאימה(למשל VLC, או Text Viewer כלשהו אם זה קובץ טקסט),

ולעשות Seek בתוך הקובץ.

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

עכשיו למצב היותר קשה, שהוא גם מה שאני שואל לגביו:

תניחו שיש לכם שני מחשבים.

במחשב האחד, יש לכם רק ה-Players למינהם,

(למשל VLC עבור סרטים, או איזה Text Viewer עבור קבצי טקסט גדולים)

ובמחשב השני, יושבים הקבצים הגדולים עצמם.

שני המחשבים נמצאים באותו LAN, והכל תקין.

עכשיו אתם רוצים לפתוח קובץ כלשהו, אבל בלי להוריד את כולו אליכם.

לדוגמא,

הסרט בגודל 1.4GB יושב על מחשב מספר 2,

ואתם רוצים לצפות בו במחשב הראשון,

בלי להוריד אותו אליו.

כמו כן אתם רוצים להיות מסוגלים לעשות Seek לסרט, כך שתוכלו לעבור מדקה 5 לדקה 30 למשל.

איזה פרוטוקול תקשורת יתאים לכך?

משהו שיאפשר לכל תוכנת Player לעבוד, ושהקבצים יופיעו לה כאילו הם כונן של המחשב שעליו התוכנה נמצאת,

אפילו שהם לא..

התוכנה מבחינתה רואה כונן עם תיקיות וקבצים..

והיא גם יכולה לעשות Seek, כאילו הקובץ נמצא איתה על אותו מחשב..

ובכל זה, הפרוטוקול מטפל באופן שקוף לתוכנה.

תודה

card

פורסם

כמובן פרוטוקול TCP/IP

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

אם צדובר על פיכסדוס אז כונן רשת בSMB

אם מדובר על לינוקס, אז אפשר SMB, אבל עדיפות לNFS

פורסם
  • מחבר
כמובן פרוטוקול TCP/IP

הערה חשובה:

השאלה היא לא לגבי ה-Transport Layer,

אלא רמה אחת מעל - Application Layer.

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

אם צדובר על פיכסדוס אז כונן רשת בSMB

אם מדובר על לינוקס, אז אפשר SMB, אבל עדיפות לNFS

לעגן הכוונה Mount?

פורסם

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

אפשר למפות כונן רשת, אבל זה לצורך נוחות (של המשתמש) בלבד. זה יהיה הכרחי לתוכנה רק אם התוכנה מנסה משום מה לשנות את ה-Working Directory לתיקייה רשתית (כלומר, על שרת SMB), ואז היא לא תצליח ללא מיפוי כונן רשת. רוב התוכנות לא ינסו לעשות את זה אם כל מה שהן צריכות זה רק לפתוח קובץ.

מכיוון שכל הטיפול ב-SMB נעשה ע"י Windows, הוא שקוף לחלוטין לתוכנה ולכן זה אמור לעבוד בכל תוכנה (כמובן, אם לא עשו דברים ממש עקומים כשכתבו אותה).

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

למשל, אם תנסה לפתוח קובץ טקסט של 1GB ב-Notepad של Windows, אתה תחכה הרבה זמן לפני שמשהו יגיב שם, כי היא תנסה לקרוא את כל הקובץ לזיכרון לפני שהיא תציג משהו למסך. לעומת זאת, עורכים נורמליים יותר (כמו Notepad++) יודעים לקרוא מהקובץ רק את החלק שרלוונטי להצגה למסך (או לעריכה, או לחיפוש, וכו').

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

פורסם
  • מחבר
הבעיה הנפוצה במקרים שציינת בכלל לא קשורה לרשת, אלא לאופן שבו התוכנה פותחת קבצים.

למשל, אם תנסה לפתוח קובץ טקסט של 1GB ב-Notepad של Windows, אתה תחכה הרבה זמן לפני שמשהו יגיב שם, כי היא תנסה לקרוא את כל הקובץ לזיכרון לפני שהיא תציג משהו למסך. לעומת זאת, עורכים נורמליים יותר (כמו Notepad++) יודעים לקרוא מהקובץ רק את החלק שרלוונטי להצגה למסך (או לעריכה, או לחיפוש, וכו').

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

נכון, על זה בדיוק אני מדבר.

התוכנה שאיתה נפתח/ננגן אאת הקובץ, היא כזו שעובדת בצורה חכמה, ויודעת לעשות Seek,

ולא כמו Notepad שקורא את כל הקובץ לזכרון, ורק אז מציג אותו.

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

נהדר.

אפשר למפות כונן רשת, אבל זה לצורך נוחות (של המשתמש) בלבד.

זה יהיה הכרחי לתוכנה רק אם התוכנה מנסה משום מה לשנות את ה-Working Directory לתיקייה רשתית (כלומר, על שרת SMB), ואז היא לא תצליח ללא מיפוי כונן רשת. רוב התוכנות לא ינסו לעשות את זה אם כל מה שהן צריכות זה רק לפתוח קובץ.

הסיבה שהדגשתי את החשיבות של המיפוי, היא זו:

דמיין למשל FTP.

אתה יכול להתקין במחשב השני FTP Server,

ובמחשב הראשון FTP Client,

אבל אז, לא תוכל לפתוח את הקובץ שאתה רוצה(וידאו, טקסט או מה שזה לא יהיה) ישירות מהתוכנה שמנגנת/מציגה.

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

לכן FTP לא יתאים.

SMB מנגד, כן.

אני רק לא מבין למה כתבת שהחלק של המיפוי לא קריטי..

בלי מיפוי, איזה Full Path ניתן לתוכנה שאמורה לפתוח את הקובץ?

פורסם
הסיבה שהדגשתי את החשיבות של המיפוי, היא זו:

דמיין למשל FTP.

אתה יכול להתקין במחשב השני FTP Server,

ובמחשב הראשון FTP Client,

אבל אז, לא תוכל לפתוח את הקובץ שאתה רוצה(וידאו, טקסט או מה שזה לא יהיה) ישירות מהתוכנה שמנגנת/מציגה.

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

לכן FTP לא יתאים.

SMB מנגד, כן.

מקרה כזה הוא שילוב של שתי בעיות:

1. הנגן לא תומך ב-FTP.

2. Windows לא נותן ממשק FTP שקוף, כמו שהוא כן נותן ל-SMB.

לכן, ללא תוכנה שלישית שהיא FTP Client שיודעת ליצור מיפוי כלשהו, הנגן לא יוכל לפתוח קובץ ש"משותף" על שרת FTP.

אני רק לא מבין למה כתבת שהחלק של המיפוי לא קריטי..

בלי מיפוי, איזה Full Path ניתן לתוכנה שאמורה לפתוח את הקובץ?

כזה:


[left]\\<smb_server_name_or_ip>\<shared_folder_name>\path\to\file.ext[/left]


(ללא הסוגריים המשולשים כמובן.)

Windows יודע להתחבר לבד ב-SMB לשרת שניתן ב-path הנ"ל, ולחפש קובץ בתיקייה המשותפת ובשאר ה-path הנ"ל.

בהנחה שיש ליוזר שלך הרשאות מתאימות להתחבר לתיקייה הזאת בשרת ה-SMB, ולפתוח את הקובץ הנ"ל על השרת, זה פשוט יעבוד.

אם אין הרשאות, Windows או התוכנה יכולים להקפיץ חלון שמבקש Credentials, או פשוט להיכשל. בשביל להימנע מכישלון כזה, אפשר להשתמש ב-net use מקדים לניסיון פתיחת הקובץ, וכך לא תהיה ל-Windows בעיית הרשאות, כאשר הוא ינסה לפתוח את הקובץ הנ"ל. כל זאת מבלי להצטרך למפות כונן עם אות.

פורסם
  • מחבר

מגניב מאד.

עכשיו לחלק הביצועי:

אני רוצה לקחת מחשב אנדרואיד כלשהו,

בין אם זה סמארטפון, או Android TV Box קטן, כמו אלה שנמכרים ב-DX בכמה עשרות דולרים,

ואז ליצור ממנו בעצם NAS כמו שתואר למעלה.

NAS חכם, שמאפשר Seek בקובץ,

ולא מצריך הורדה של כל הקובץ לפני כן, אל המחשב ה-Client.

חיפוש ב-playstore עבור המילה SMB הניבה כמה תוצאות, שתיים מהן נחמדות,

אבל בשתיהן מצויינת הבעיה הנ"ל:

הם כותבים שה-NAS הזה לא יהיה זמין ממחשבי Windows, בגלל שה-Port שה-SMB Server יקבל על אנדרואיד, יהיה מעל 1024.

(פורט לא סטנדרטי של SMB)

והם מציינים שם ש-Windows לא יכול לעבוד עם SMB שהוא לא בפורט הסטנדרטי.

להלן שתי האפשרויות שנראות לא רעות בכלל(למעט בעיית הגישה הבלתי אפשרית ממחשבי Windows)

Samba Server

https://play.google.com/store/apps/details?id=com.icecoldapps.sambaserver

Droid NAS

https://play.google.com/store/apps/details?id=com.codesector.droidnas

מה עושים?

האם יש עוד אפשרויות?

פורסם

אתה יכול להשיג הרשאות root על האנדרואיד, ואז לא תהיה לאפליקציה בעיה לפתוח Server בפורט 445 (הסטנדרטי של SMB).

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

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

המטרה היא לקחת מחשב קטן, ושישמש כ-כמה סרברים שאני צריך, בינהם גם NAS..

אין לי צורך להשיג NAS ממש, בגלל שהקיבולת שאני צריך היא לא כזו גבוהה.

בוא נגיד שכרטיס זכרון של 32GB יהיה מעולה.

אתה יכול להשיג הרשאות root על האנדרואיד,

ואז לא תהיה לאפליקציה בעיה לפתוח Server בפורט 445 (הסטנדרטי של SMB).

האמת שהנושא הזה של לעשות root למכשיר עולה כבר כמה וכמה פעמים..

יש לזה המון יתרונות.

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

ואז לחבר את הטלפון(או את ה-Android TV Box) אל המחשב עם כבל USB,

ולהריץ את התוכנה,

כדי לעשות למכשיר root.

הבעיה שהקבצים האלה מגיעים ממקור לא ממש ידוע.

זה איזה ZIP שמאוחסן בשרת download כלשהו,

ולא שאתה מוריד משהו מגוגל עצמם..

אני לא שמח כל כך להריץ דבריםממקורות לא ידועים על המחשב..

לכן זה מה שמונע ממני לעשות root לטלפון,

ובאותה מידה גם כשיהיה לי Android TV Box אז זה יהווה החסם גם שם.

חבל שאין אפשרות לעשות root למכשיר, ע"י הקלדה של איזה קוד כלשהו במכשיר, וזהו.

בלי להתקין תוכנות ודרייברים על המחשב שלך..

פורסם

לגבי ה-root לאנדרואיד, אפשר להמשיך לדבר על זה, אבל עדיף בפורום המתאים...

לגבי השרת: אם אתה רוצה להרים שרת NAS על מחשב קטן (ובטח אם מתוכננים גם שירותים נוספים עליו), עדיף לך להתקין לינוקס כלשהו ל-PC ולאו דווקא אנדרואיד. יש מיליון מדריכים, זה יהיה לך הרבה יותר נוח, ורסטילי ובטוח.

גם על זה אפשר לדבר, בדיון מתאים בפורום מתאים. :)

פורסם
  • מחבר
לגבי ה-root לאנדרואיד, אפשר להמשיך לדבר על זה, אבל עדיף בפורום המתאים...

אם יש דרך אחרת להשיג root, שלא מצריכה התקנת דרייברים ותוכנות ממקורות לא ידועים,

אני אשמח אם תגיד..

לגבי השרת: אם אתה רוצה להרים שרת NAS על מחשב קטן (ובטח אם מתוכננים גם שירותים נוספים עליו), עדיף לך להתקין לינוקס כלשהו ל-PC ולאו דווקא אנדרואיד. יש מיליון מדריכים, זה יהיה לך הרבה יותר נוח, ורסטילי ובטוח.

גם על זה אפשר לדבר, בדיון מתאים בפורום מתאים. :)

היתרון בשימוש ב-Android TV Box הוא שהוא ממש קטן,

חסכוני מאד בחשמל,

זול,

מלא יתרונות.

עכשיו, אפשר להגיד שהכוח עיבוד שלו לא יהיה למשל כמו מעבד core i כלשהו.

אבל הצרכים שלי ממנו הם כאלה שמעבד quad core של TV Box יספיק דיי והותר.

אין לי צורך ב-PC ממש,

לכן כל הסיפור על אנדרואיד, ולא לינוקס.

פורסם

אתה יודע שאנדרואיד זה לינוקס עם תוספות?

אם אתה לא צריך משהן ספציפי לאנדרואיד אין סיבה לא להתקין לינוקס.

פורסם
  • מחבר

כן אני מודע לכך שאנדרואיד זה לינוקס,

העניין הוא, איפה תשיג מחשב מרובע ליבות, בכמה עשרות דולרים?

(Raspberry Pi לצורך העניין, הרבה פחות חזק ממחשבי Android TV Box)

כמו כן, הממשק של אנדרואיד כמעט ולא מצריך שום לימוד,

לעומת זאת אם אתקין לינוקס(מערכת הפעלה שיצא לי מעט מאד לעבוד איתה) יקח לא מעט זמן עד שארגיש שם בבית

ארכיון

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

דיונים חדשים