aravmaxim פורסם 2011 במרץ 28 Share פורסם 2011 במרץ 28 יש לי בעיה, אני רוצה להפיץ קבצים ממחשב מסוים למחשבים שנמצאים ברשת איתי ולכן בחרתי בתוכנה Udpcat שהיא קרוס-פלאטפורמית וניתן להוריד אותה ואת קוד המקור באתר הבא http://udpcast.linux.lu/. אך יש בעיה אחד מהפונקציונליות של התוכנה הכי חשובה היא להעביר Stream של קובץ בצורה מקובצת בעזרת הארגומנת pipe-- ותוכנה לקיבוץ כמו למשל gzip או tar. בהפצה בין מחשב וינדוס לוינדוס אין בעיות ובין לינוקס לוינדוס אין בעיות, כמו כן מוינדוס ללינוקס אין בעיה. אך יש בעיה בהעברה מלינוקס לוינדוס. ולכן החלטתי לכתוב קוד ב C בשביל לעשות זאת בצורה קרוס פלאטפורמית. הטריק אם Udpcast עובד כך: תוכנת הפצה(udp-sender) לוקחת את ה STDIN של התוכנה ומפיצה אותו. התוכנה של הקבלה(udp-reciver) שופכת את כל המתקבל לתוך STDIN. הבעיה שנתקלתי בה היא שבוינדוס יש איזה בעיה בשלב כלשהוא שאני מתחיל לקבל רצף אין סופי של EOF לפני שגמרתי לקרוא את הכמות המתוכננת. בדקתי גם אופציה כזאתי שאם אני שופך את כל התכולה לקובץ ומנסה בוינדוס לקרוא אותו באופן כזה "program.exe < file" אני נתקל בEOF לפני שסיימתי לקרוא את הקובץ. כמו כן אני ייצין שבדקתי שבאמת בקובת לא מופיע FF ולא רצף של FF לא אחרי המקום בו הוא ניתקה ולא בשום מקום אחר בקובץ.השתמשתי גם בפקודה fread וגם ניסיתי אם getchar. נראה כאילו שהBUFFER של STDIN של ה RUN-C בוינדוס מוגבל. האם מישהוא נתקל בתופעה כזאת ומצא לה פתרון או משהוא בסגנון? אם כן אז בבקשה תעזרו לי. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.