منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلتين في أرسال بأداة Socket
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
السلام عليكم

بارك الله فيك اخي العزيز انا كتبت الكلاس الذي يحتوي على البيانات التي عملت لها Serialize في نفس المقال ومن ثم حولته الى ملف dll واستخدمته في كلا الطرفين فلا يوجد فيها اي اجراء فقط بيانات (Data members)

هذا هو الكلاس الذي استخدمته:

PHP كود :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
StudentInfo
{
    [
Serializable//This attribute makes the class ready for Serialization and serializes all members of a class
    //and tells the .NET Framework that the members on this class can be written to a file and read back from
    
public class SerializeStdInfo
    
{
        public 
int idage;
        public 
double avg;
        public 
string namedept;
    }



اخي الكريم فكرتك جميلة تشكر عليها بارك الله فيك لكن انا كنت بصدد توضيح كيفية ارسال فئة (Class) بكل ما فيها من بيانات بشتى الانواع او اجراءات الى الطرف الاخر ومن ثم تحويلها الى نفس نوع البيانات المرسلة لانه حسب رأي المتواضع ليس من المنطقي اسناد الرقم 1 الى متغير نصي حتى لو كان ذلك ممكنا باستخدام الCasting , وكنت ابين كيفية تحويل الفئة الى سلسلة من الBytes باستخدام خاصية الSerialize حيث يمكن ايضا خزنها في قاعدة البيانات (تخيل انك تستطيع خزن معلومات عدة حقول ومن عدة انواع في حقل واحد وعند ارجاعها تسند البيانات كل حسب نوعها).

إقتباس :في مثالك السابق لايقبل الإرسال إلى من نوع Object وانا أبي ارسل من نوع Byte

أما بخصوص ذلك يمكنك تعريف متغير او مصفوفة من نوع byte في داخل الClass ومن ثم ارسال الClass الى الطرف المقابل

وما شاءالله كما ارى انك اطلقت العنان لمخيلتك وابدعت في هذا الموضوع فبارك الله فيك وأتمنى لك التوفيق ان شاءاللهSmile
وبارك الله فيك

sajad كتب :(تخيل انك تستطيع خزن معلومات عدة حقول ومن عدة انواع في حقل واحد وعند ارجاعها تسند البيانات كل حسب نوعها).

نعم أخي وهذا المفيد من الفكره بحيث اني أجمع كل البيانات بغض النظر عن عدد الصفوف والأعمدة لو كانت مصفوفه إيضا خزن قاعدة بيانات بأكملها في حقل واحد

ولاكن السؤال هنا إللي شيب برأسي

هل من كود يقوم بأرسال Byte وأستقبال Byte ؟
لان جميع الأمثله تقوم بأستقبال في NetworkStream وانا أريد أستقبال بـ Byte

وشكرا
السلام عليكم

بصراحة لم أقرأ ولم اسمع سوى الاستقبال بالSocket او الNetStream

فلا اعرف ان كان هنالك من طريقة لذلك؟

طيب لماذا مصر على هذه الطريقة؟
sajad كتب :السلام عليكم

بصراحة لم أقرأ ولم اسمع سوى الاستقبال بالSocket او الNetStream

فلا اعرف ان كان هنالك من طريقة لذلك؟


طيب هل يوجد طريقه بتحويل من NetStream إلى Byte ؟


sajad كتب :طيب لماذا مصر على هذه الطريقة؟

لاني أقوم بعمل مشروع يقوم بإرسال مصفوفه متغيرت الحجم بالمره الأولى تكون عمودين و 10 صفوف والمره الثانيه تكون عمودين 100 صف
لهذا أريد أن أقوم بتحويله إلى Byte واستقبله Byte حتى أقوم بإرجاعه كما كان
في حال أستلمه كـ NetworkStream ما أقدر أقرأ البيانات

لو مافي طريقه

أريد فكره أستطيع أرسال المصفوفه المتغيره بدون إي مشاكل Sad
السلام عليكم

اخي العزيز هنالك دالة الRead للNetworkstream تقوم بتحويل البيانات المستلمة الى مصفوفة من الBytes جرب ذلك
أخوي أبشرك وأخيرا قدرت أستلم Byte بدون اللجوء إلى NetStream بهذا الكود

PHP كود :
Dim i As Integer Socket1.ReceiveBufferSize 1
Dim b
(i) As Byte
Socket1
.Receive(b

شرح الكود
في البداية قمت بتخزين طول الرسالة القادمه في Socket1
ومن ثم عرفت متغير من نوع Byte بحجم i وهو الذي يحتوي على حجم الرسالة
ومن ثم بكل سهوله اسم السوكت نقطه receive وبين قوسين متغير من نوع Byte إللي عرفناه Rolleyes

انا بصراحه أرتفع ضغطي بزياده يوم عرفت انوا الحل بهذا البساطه واليسر :mad:

المهم حلينا جزء وباقي الجزء الأخر وهو أرسال تعليمه تشير للـ Object الجاي
هذي شكلها بتطلع بسيطه وترفع ضغطي ههههههههههههههههه Big Grin
الحمد لله نعم هذه الطريقة صحيحية لكن باستخدام الsocket

ان شاءالله توفق وتنجح في مشروعك Smile
sajad كتب :الحمد لله نعم هذه الطريقة صحيحية لكن باستخدام الsocket

ان شاءالله توفق وتنجح في مشروعك Smile

تسلم أخوي
وإن شاء الله تتوفق انت بدنيتك وآخرتك :o

أخوي هل لديك حل لمشكلة أرسال تعليمه مع الرساله
السلام عليكم

أجمعين ان شاءاللهSmile

هل تقصد مثل تنبيه ينذر بقدوم رسالة مثلا؟ هل هذا الذي تقصده؟

عندي فكرة اولا قم بارسال التعليمة ومن ثم أخر عملية ارسال المصفوفة عن طريق الsleep للThread بمدة معينة وبعد ذلك قم بارسال المصفوفة

أما عند الاستلام فيكون مثل ال(First in - First out) يعني اولا استلم التعليمة ومن ثم الرسالة وأعتقد يكون ذلك فقط عن طريق الBinaryReader والBinaryWriter

انظر الى هذا المقال http://vb4arb.com/vb/showthread.php?27-M...he-Network

وانظر انني قمت بارسال الحجم اولا ومن ثم ارسال البيانات واستلمت الحجم اولا ثم البيانات يمكن ان تستفيد من هذه الفكرة ان شاءالله

آمين

لا أخي أقصد الأن مثلا في برنامجي أقوم بإرسال نوعين من الرسائل
النوع الأول أقوم بإرسال سجل عبر إدخالها بمصفوفه مثل ما ذكرنا سابقا
والنوع الثاني أقوم بأرسال أمر لأتحكم بالطرف الأخر

أبي عند أرسال الرساله أرسل معها تعليمه مثلا كلمة ( File ) أو كلمة ( Command )

وعند الأستقبال يقرأ بالأول التعليمه إذا وجدها كلمة ( File ) تلقائي يستقبلها في مصفوفه مناظره لها ويعرضها
أما كانت التعليمه كلمة ( Command ) تلقائي يروح Sub الأوامر Sub الأوامر فيه كلمه ومناظره أمر معين

ياليت وضحت الفكره
لو ما وضحت قول لي وسأشرح بشكل أكبر
الصفحات : 1 2 3