ورود

View Full Version : دریافت دیتای نا مشخص از شبکه



gbg
پنج شنبه 01 تیر 1391, 20:03 عصر
سلام
من یه دستگاه دارم که از طریق شبکه اطلاعات ارسال میکنه
متاسفانه نحوه کارکردن این دستگاه به صورتیه که نمی تونم با Indy باهاش ارتباط بر قرار کنم
طول پکت ها نا مشخص هستش
پکت با کاراکتر 0D ختم میشه
دستگاه وقتی کانکت میشه دیگه دیسکانکت نمیشه و هر چند ثانیه اطلاعات می فرسته.

BORHAN TEC
جمعه 02 تیر 1391, 11:48 صبح
آیا دستگاه شما در یک سیستم Local قابل استفاده است؟
آیا به گونه ای است که بتوان شماره پورت خاصی را به آن اختصاص داد؟
آیا خودش همینطوری اطلاعات را می فرستد و یا به گونه ای ست که باید یک دستور خاص را به آن بفرستیم و بعد از آن دستگاه شروع به ارسال اطلاعات می کند؟
آیا دستگاه از پروتکل خاصی (Telnet ، http و ...) برای برقراری ارتباط استفاده می کند؟

gbg
جمعه 02 تیر 1391, 19:30 عصر
نه پورت قبول نمی کنه
اطلاعات رو به صورت TCP/IP میفرسته و فقط برای دریافت شدن از طرف سرور یه تایید می خواد که دوباره نفرسته ، اگه تایید ارسال نشه چند باره اطلاعات قبلی رو میفرسته (وقتی روشن میشه خودش شروع به ارسال می کنه)

hamid-nic
شنبه 03 تیر 1391, 00:04 صبح
سلام دوست عزیز
به اون قسمت که برای توقف ارسال منتظر جواب می مونه به اصلاح می گویند Ack-TimeOut
بنابراین تا موقعی که Ackی از گیرنده مبنی بر دریافت صحیح داده نکند و یا مقدار timeOut اون به اتمام برسه مرتباً ارسال می کند . به احتمال زیاد اطلاعات بصورت کد شده فرستاده می شود و سپس در گیرنده پس از دریافت و پردازش به داده اصلی برگردانده می شود . البته همانطور که خودتان بهتر می دانید این چنین مواقعی برای ارسال داده اونها (پکت ها) را در یک فریم بخصوص قرار می دهند پس اگر بتوانید با سعی و خطا چند پکتی که فریم بندی شده و آماده ی ارسال شده را مورد بررسی قرار بدهید به قسمت های ثابتی دست پیدا می کنید که در همه پکت های قابل ارسال وجود دارند و بقیه مقدار پکت ها داده های مختلفی است که این داده های مختلف همان داده ی اصلی کد شده می باشد .
موفق باشید .

gbg
جمعه 23 تیر 1391, 21:52 عصر
دوستان مشکل من این چیزا نیست
من دکد کردن اطلاعات رو هم می دونم
مشکل اینجاست اطلاعات طول ثابت نداره همچنین در انتهای ارسال کاراکترهای 13 و 10 هم قرار نمی گیره

gbg
دوشنبه 26 تیر 1391, 08:20 صبح
کسی راه حلی نداره
تو نسخه های قدیمی از کامپوننت سوکت بجای Indy استفاده می کردم ولی تو XE این کامپوننت نیستش

Mask
دوشنبه 26 تیر 1391, 20:08 عصر
برای نصب سوکت در دلفی xe :
ابتدا از منوی Component گزینه Install Package رو انتخاب می کنین. بعد روی دگمه Add کلیک می کنین. حالا باید آدرس فایل dclsockets150.bpl رو از شاخه Bin در مسیر نصب دلفی بدین. حالا روی دکمه OK کلیک کنید تا این Package نصب بشه. حالا اگه یه سری به سربرگ Internet بزنین می بینین که این دو کامپوننت اضافه شدن.
موفق باشید.

mossaferin
چهارشنبه 15 شهریور 1391, 14:56 عصر
سلام
یه پیشنهاد

برای اینکه بتونی نوع پکت هاشو تشخیص بدی ، یه sniffer نصب کن و پکت هاشو ببین چیه .... ، دیگه از اینجا به بعد مشخص میشه که باید با چه پروتکلی یا پورتی باهاش در ارتباط باشی ، و یه چیز دیگه ، وقتی روشنش میکنی ، شروع به فرستادن پکت میکنه احتمالا داره broadcast میکنه تا بتونه سرورش رو پیدا کنه و از اون به بعد فقط به سرور دیتا بفرسته ...

موفق باشی