PDA

View Full Version : سوال: ارسال دو مقدار متفاوت با Winsock



amirreza619
جمعه 17 آذر 1391, 16:06 عصر
96214

سلام !
ببخشین چجوری میتونم با winsock توی vb6 دو نوع مقدار متفاوت رو جدا جدا ارسال کنم ؟
سورس رو ضمیمه کردم ، اگه Client رو متصل کنین به Server و توی اون دوتا تکستباکس دو تا چیز متفاوت بنویسید و سند کنین به سرور میبینین که هردوشون کنار هم قرار گرفتن :افسرده: ! البته همینجوری هم باید بشه ! چون دیتا هایی که سند میکنیم همشون یجا Get میشن !
راهی نیست که این مشکل رو حل کرد ؟ یا فقط باید یه وینسوک دیگه واسه یه مقدار دیگه تعریف کنم ؟ ( حجم برنامه خیلی بالا میره ! )
:ناراحت:
کمکم کنین ! مرسی

M.T.P
جمعه 17 آذر 1391, 19:21 عصر
باید دیتا رو رمز کنید بعد ارسال کنید و بعد از دریافت رمزگشایی کنید.

یه مثال براتون نوشتم:


Dim strData As String
Dim strSender As String
Dim strMessage As String

strSender = "Ali"
strMessage = "Hello Programmer."

strData = "<Sender>" & strSender & "</Sender>" & _
"<Message>" & strMessage & "</Message>"

wsk.SendData strData


بعد از دریافت با تابع Mid میتونید عملیات تفکیک رو انجام بدید.

amirreza619
چهارشنبه 22 آذر 1391, 15:59 عصر
ببخشین فک کنم منظورمو نفهمیدین ! ( یا من نفهمیدم شما چی مییگین :لبخند: )
میخاستم دو تا متغیر مختلف رو با وینسک بفرستم که تو سرویس گیرنده بتونم دوتا متغیر گرفته شده رو جدا جدا بخونم :اشتباه:

محسن واژدی
چهارشنبه 22 آذر 1391, 17:31 عصر
سلام علیکم
باید از دو کنترل جدا برای ارسال دو مقدار در یک زمان استفاده کنین

موفق باشید

amirreza619
چهارشنبه 22 آذر 1391, 21:08 عصر
:(
ممنون ! یعنی دیگه راهی نیس کلا ؟!

m2011kh
چهارشنبه 22 آذر 1391, 22:45 عصر
فک کنم تو وینساک ورژن جدید منتشر شده از ماکروسافت این مشکل حل شده باشه(ارسال دیتا در یک زمان)
البته شاید وینساک جدید تری هم منتشر شده باشه ولی همین ورژن این مشکلو نداره.
این وینساک رو براتون ضمیمه کردم.

M.T.P
پنج شنبه 23 آذر 1391, 01:00 صبح
:(
ممنون ! یعنی دیگه راهی نیس کلا ؟!

دوست عزیز وینسوک دیتا رو یکجا ارسال می کنه ، مگه اینکه بخوای با یه تاخیر چند ثانیه ای هر کدوم رو ارسال کنی که
سمت رسیور دو بار روال Data_Arrival اجرا بشه و شما جدا جدا دیتا رو دریافت کنید.
اما این یک روش مبتدی و بدردنخور هست چون در کارت های شبکه مختلف میزان دیتای دریافت در هر بار دریافت متفاوته.
مثلا تو اکثر کارت های شبکه هر بار 8 کیلوبایت دریافت میشه که برای مقادیر ارسالی کم خوبه اما شما کارت شبکه ای رو تصور کنید
که در هر بار رسیو 1.5 کیلوبایت دیتا رو رسیو می کنه و شما در مبدا یک مگابایت دیتا ارسال کردید! پس دیتای شما باید تو هر بار فراخوانی
تابع Data_Arrival با مقدار قبلش ذخیره شه و در پایان علامت گذاری ها رو که عرض کردم بردارید و دیتا رو فیلتر شده تحویل بگیرید.