PDA

View Full Version : سوال: خواندن داده از چند دستگاه از طریق ip



minaalamshahi
سه شنبه 24 بهمن 1391, 11:09 صبح
سلام


من یه دستگاه reader دارم که می خوام وقتی هر کاربری از هر جایی کارت میزنه ،شما ره کارت که شناسایی شد بیاد ارتباط بگیره با برنامه ای که روی یه سیستم توی شبکه برنامه روی اون نصبه


بعد از طریق ip دستگاه اطلاعات رو به اون سیستم و اون برنامه بفرسته



و اون سیستم هم از طریق برنامه بیاد تغییرات مورد نظر رو روی db بده



حالا سوال اینجاست که

اگه ip دستکاه reader-1 من باشه 192.168.13

reader -2 باشه 192.168.1.14

.

.



و ip سیستم من که برنامه ها روی اون نصب هست باشه 192.168.1.140



خوب احتمالا reader ها باید بشن client

سیستم سرور

سیستم باید به چه ip گوش بده؟

reader ها به چه ip وصل بشن؟



سوال بعدی اینکه من می خوام هر وقت کارت زد اتومات مثل خوندن از پورت ،خودش بیاد اطلاعات رو بفرسته به برنامه سرور

حالا اینجا که می خوام باز زدن کارت اطلاعات رو از 192.18.1.13 بخونم کدوم برنامه عمل خوندن رو باید انجام بده؟

سرور که در حال گوش کردنه ،کلاینت هم که به سیستم من وصله ،پس کجا باید بگم از ip دستگاه reader بخونه؟



من سوکت کار نکردم



اگه میشه روی روند کار یه کم برام توضیح بدین.

sgn2006
سه شنبه 24 بهمن 1391, 11:20 صبح
سلام
من یه بار با کارت ریدر کار کردم.
چرا این کار رو می کنی ؟ شما وقتی از Reader استفاده می کنی و شماره کارت رو می خونی توی یه TxtBox بریز و اونو بفرست به db و اطلاعات رو از db بخون و نشون بده
فقط این زمانی جواب می ده که اطلاعات اون کارت رو در db داشته باشی

موفق باشی

minaalamshahi
سه شنبه 24 بهمن 1391, 12:09 عصر
من ممکنه 10 تا reader داشته باشم با ip های مختلف

آخه این reader ها که توی جاهای مختلف سازمان قرار دارن ،چطوری با برنامه من در ارتباط باشن اگه شبکه نباشن؟

من هم همون شماره کارت رو میخوام بخونم

قبلا از طریق پورت می خوندم زمانیکه برنامه و reader کنار هم بود و یه reader هم بیشتر نداشتم

اما حالا که چند تا reader دارم

و کاربر دیگری هم با برنامه اصلی در حال کار کردن هست

می خوام هر کاربری هر جا با هر کدام از reader ها که کارت زد
شماره کارت رو بخونه البته در back ground برنامه و بفرسته برای برنامه من
من نمی دونم چطوری شماره کارتها رو از دستگاه های مختلف به سمت برنامه بفرستم؟

و یک مساله دیگه اینه که ممکنه 10 نفر باهم کارت بزنن

اونقت تکلیف همزمانی چی میشه؟

sgn2006
چهارشنبه 25 بهمن 1391, 08:21 صبح
سلام
من یه چیزیو متوجه نشدم
ما یه شبکه داریم دارای n کامپیوتر که همه در شبکه هستند . شما یک نرم افزار دارید که روی همه این Client ها وجود دارد و یک سرور دارید که همه clinet ها به این سرور وصل هستند . خوب اگر تا اینجا درست است پس مسئله قابل حل است:
شما یه txtBox ایجاد می کنید کاربر روی اون txtbox از کارت ریدر استفاده می کنه ، شماره ای که در کارت ریدر وجود دارد در txtbox قرار می گیرد ، حال با استفاده از خاصیت Leave در db جستجو کن ببین همچین شماره کارتی وجود داره یا خیر... اصلا مهم نیست در آن واحد چند نفر همزمان از کارت ریدر استفاده می کنند.

من اینجا رو متوجه نشدم : "می خوام هر کاربری هر جا با هر کدام از reader ها که کارت زد
شماره کارت رو بخونه البته در back ground برنامه و بفرسته برای برنامه من
من نمی دونم چطوری شماره کارتها رو از دستگاه های مختلف به سمت برنامه بفرستم؟"
آیا کاربر از برنامه دیگری برای کارت ریدر استفاده می کنه و شما می خواهین از نرم افزار دیگری اطلاعات رو بخونین؟

minaalamshahi
چهارشنبه 25 بهمن 1391, 09:45 صبح
من یه سیستم دارم که برنامه روی اون نصب هست

و reader ها رو می خوام از طریق یه switch با سیستمی که برنامه روی اونه شبکه کنم

اطلاعات کارت رو بعد از اینکه کاربر کارت زد بخونم حالا از هر کدوم از readrer ها که باشه ممکن هست چند نفر همزمان هم کارت بزنن

بعد اطلاعات رو به سیستمم که برنامه روی اونو بفرستم و باهاش کار کنم

sgn2006
چهارشنبه 25 بهمن 1391, 10:06 صبح
سلام ;
شما به دیتابیس برنامه کارت ریدر دسترسی دارید؟
پیشنهاد من : زمانی که کاربر از کارت ریدر استفاده کرد (حالا همزمان چند تا کاربر یا غیر همزمان) در یک جدول Temp (تمام اطلاعات شامل چه کاربری از کدام کلاینت چه مقداری چه تاریخی و ....) ذخیره کند . سپس شما از آن جدول بخوانید و در برنامه خود استفاده کنید

minaalamshahi
چهارشنبه 25 بهمن 1391, 10:13 صبح
خوب مشکل من همین جاست که نمی دونم چطوری اطلاعات رو باید بخونم که حالا بخوام بریزم روی table
قبلا توی یه برنامه دیگه یه پورت بود اونو با serial port.readline() می خوندم و می ریختم توی database
اما اینجا که چند تاشده و مساله شبکه به میون امومده دیگه نمی دونم از چه راهی باید برم؟

sgn2006
چهارشنبه 25 بهمن 1391, 10:33 صبح
سوال منو جواب ندادین
به دیتابیس برنامه کارت ریدر دسترسی دارید؟

یه کار دیگه هم می تونی بکنی.... یه برنامه کوچیک بنویسی و روی هر کلاینت بزاری که به پورت ریدر گوش بده ، بعد اگر از ریدر استفاده کرد اطلاعات رو بگیره و بریزه توی db اصلی که رو سروره ...
اون وقت می شه از serial port.readline استفاده کنی، برنامه رو هم بزار توی startup ویندوز که هر بار کسی نخواد اجراش کنه...

minaalamshahi
چهارشنبه 25 بهمن 1391, 11:25 صبح
بله به دیتابیسش هم دسترسی داریم

minaalamshahi
چهارشنبه 25 بهمن 1391, 11:26 صبح
روی هر کلاینت بزاری که به پورت ریدر گوش بده ، بعد اگر از ریدر استفاده کرد اطلاعات رو بگیره و بریزه توی db اصلی که رو سروره ...
..

سوال من روی این قسمته
اگه گوش دادن رو بخوام بدون serialport_datarecive انجام بدم یعنی از ip بخوام استفاده کنم باید چطوری باید انجامش بدم

sgn2006
چهارشنبه 25 بهمن 1391, 11:51 صبح
خیلی خوبه به db دسترسی دارید، می تونید با یه trigger راحت اطلاعات رو به db خودتون ارسال کنید

این لینکها رو نگاه کن شاید بتونه کمکت کنه
http://www.codeproject.com/Articles/240655/Using-a-Smart-Card-Certificate-with-NET-Security-i

http://www.sourcecodeprojects.com/1193588/

http://www.sourcecodeprojects.com/1245558/

minaalamshahi
چهارشنبه 25 بهمن 1391, 12:28 عصر
دو تا لینک دومی برام باز نمیشه

sgn2006
چهارشنبه 25 بهمن 1391, 12:35 عصر
از فیلتر شکن استفاده کن