PDA

View Full Version : سوال: برنامه گیم نت با سوکت پروگرمینگ



amin_sltny
یک شنبه 10 شهریور 1392, 13:38 عصر
سلام. از دوستان خوبم دو تا سوال دارم!!!!!!!!

به نظر شما من توی این برنامه محاسبه شارژ و کم کرئن شارژ را سمت کلاینت بذارم بهتره یا سمت سرور؟
و یه سوال دیگه هم اینکه وقتی دو یا چند کاربر با یه نام کربری وارد مبشن باید چه کار کرد که هزینه ها را درست حساب کنه؟؟

ممنون

hamid_hr
یک شنبه 10 شهریور 1392, 14:58 عصر
اگه كلاينتا مستقيم به ديتابيس وصل هستن سمت كلاينت بزاري بهتره
برا سوال دوم : شما اگه با يه نام يك بار وارد بشن مياي هر دقيقه از شارژش يكي كم ميكني تا صفر بشه
خب وقتي همين عملو برا سه تا كلاينت كه همزمان با يك نام كاربري انجام بشه يعني به ازاي يك دقيقه 3 دقيقه از شارژش كم ميشه
در حقيقت نميخواد كاري انجام بدي

aliagamon
یک شنبه 10 شهریور 1392, 15:16 عصر
در مورد سوال اول....سمت سرور امنیتش بالا تره و دیگه احتمال پیدا شدن باگ رو نداره(که طرف بیاد از باگ استفاده کن کمتر براش بیوفته)...اما سمت کلاینت باشه به از منابع سرور کمتر استفاده میشه...فقط توجه کنین که اگه سمت کلاینت باشه شما باید تو یه بازه زمانی کوتاه(مثلا چند ثانیه ... یا نهایتا یک دقیقه)برای سرور بفرستی که اینقدر کم کن....پس نتیجه میگیریم سمت سرور بهتره...حالا چرا؟یه مثال میزنم ...فرض کن شما اینطوری تعیین کرده باشی که لاگ اوت رو که زد بفرسته به سرور مصرفشو...اما طرف پاور پشت سیستم رو میزنه په نمیوفته مصرفش:لبخند:....من قبلا این کارو رو یه گیم نت کردم (game port نبود یه چیز دست ساز مثل کار شما بود)و هر بار لاگین میکردم باز میزد "1 ساعت برابر 1000 تومان موجودی"....پس سمت سرور بزاری بهتره ... یا اینکه زود به زود اطلاعات مصرف رو به سرور بفرست....
در مورد سوال دوم:والا من معماریتونو نمیدونم....اما شما تو شمارنده احتمالا تو هر چند ثانیه مبلغ رو کم میکنی و چک میکنی که باقیمونده 0 نباشه...حالا اگه معماریتون بد باشه اینظوریه که یه بار موقع کانکت مبلغ رو از دیتابیس میریزه تو متغییر و هی با اون چک میکنه و کم میکنه و پس از دیس کانکت شدن دوباره میریزه تو دیتابیس....خوب این بده شما باید همه این عملیات رو رو دیتابیس انجام بدی و فکر هم نکنم به مشکل بخوری...

amin_sltny
چهارشنبه 13 شهریور 1392, 08:27 صبح
یه سوال دیگه این خطا مال چیه دوستان



Value was either too large or too small for an unsigned byte.
at System.Convert.ToByte(Int32 value)
at Network_Management_Farsi_Diamond.ClientControl.Rea dbyte() in D:\Program Files\Network Management Farsi Diamond\server\ClientControl.cs:line 86 9/4/2013 9:10:45 PM||9/4/2013 9:10:45 PMmand)
at System.Data.SqlClient.SqlCommand.ValidateCommand(S tring method, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(Com mandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteDbDataRead er(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbComman d.ExecuteReader(CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.FillInternal(Data Set dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
at Network_Management_Farsi_Diamond.Network.SendGame( ClientControl UserControl) in D:\Program Files\Network Management Farsi Diamond\server\Network.cs:line 443||9/4/2013 9:10:33 PM

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

amin_sltny
چهارشنبه 13 شهریور 1392, 13:32 عصر
یه سوال دیگه این خطا مال چیه دوستان



Value was either too large or too small for an unsigned byte.
at System.Convert.ToByte(Int32 value)
at Network_Management_Farsi_Diamond.ClientControl.Rea dbyte() in D:\Program Files\Network Management Farsi Diamond\server\ClientControl.cs:line 86 9/4/2013 9:10:45 PM||9/4/2013 9:10:45 PMmand)
at System.Data.SqlClient.SqlCommand.ValidateCommand(S tring method, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader( CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(Com mandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteDbDataRead er(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbComman d.ExecuteReader(CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.FillInternal(Data Set dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
at Network_Management_Farsi_Diamond.Network.SendGame( ClientControl UserControl) in D:\Program Files\Network Management Farsi Diamond\server\Network.cs:line 443||9/4/2013 9:10:33 PM

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


کسی نیست کمک کنه