تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] اذا استقبلت صورة بهذه الطريقة كيف اعطي المستخدم خيار بتحميلها او تجاهلها
#4
في برامج نقل البيانات

انا افضل بدل نقل بيانات عشوائية ان تقوم بانشاء struct وتملأه بالبيانات وتحوله الى Byte array بواسطة Serialize

والجهة المستقبلة تسوي Deserialize وتسترجع الstruct من الbyte array


يعني اولا تسوي Class او يفضل عمل تركيب (struct)
ونجعله يدعم مبدأ الSerializable باضافة المواصفة :


PHP كود :
<Serializable_
Public Structure Message
    
'variable'
    
Public RtfMessage As String
    
Public senderName As String
    
Public image As Image Nothing


    
'constractor'
    
Public Sub New(RtfMessage As StringsenderName As Stringimage As Image)
        
Me.RtfMessage RtfMessage
        Me
.senderName senderName
        Me
.image image
    End Sub
End Structure 



ثانيا نستعمل الstruct وبعدين نحوله الbyte array بواسطة Serializa عشان نرسله بواسطة دالة Send :

PHP كود :
Private Sub sendButton_Click(sender As ObjectAs EventArgs)
    
Dim msg As New Message("<b>Hello i'm Mohammed""Ali"Nothing)

    
Dim msgData As Byte() = ToByteArray(msg)

    
mySock.Send(msgData)
End Sub


Public Function ToByteArray(source As Object) As Byte()
    
Dim formatter = New BinaryFormatter()
    
Using stream = New MemoryStream()
        
formatter.Serialize(streamsource)
        
Dim data As Byte() = stream.ToArray()
        
stream.Close()
        Return 
data
    End Using
End 
Function 




--

الان الجهة المستقبلة ببساطة يمكنها ارجاع الbyte array الى الobject الاصلي وقراءة الرسالة :-

PHP كود :
Private Sub receiveMessages_Click(sender As ObjectAs EventArgs)
    While 
True
        
'قراءة البيانات'
        
Application.DoEvents()
        
Dim buffer As Byte() = New Byte(999999) {}
        
Dim totalReceived As Integer mySock.Receive(buffer)


        
'اكبر من البيانات التي تم استلامها bufferقد تكون قيمة '
        'بعد اعادة كتابتها بصورة صحيحة msgData فهنا يتم حفظ البيانات في المتغير '
        
Dim msgData As Byte()
        
Using rw As New MemoryStream()
            
rw.Write(msgData0totalReceived)
            
rw.Close()
        
End Using


        
''ارجاع الرسالة الى التركي'
        Dim msg As Message = DirectCast(ToObject(msgData), Message)


        '
قراءة الرسالة'
        richTextBox1.Rtf = msg.RtfMessage
        MessageBox.Show("This Message was received from : " + msg.senderName)
        If msg.image IsNot Nothing Then
            pictureBox1.Image = msg.image
        End If
    End While
End Sub


Public Function ToObject(source As Byte()) As Object
    Dim formatter = New BinaryFormatter()
    Using stream = New MemoryStream(source)
        stream.Position = 0
        Dim obj As Object = DirectCast(formatter.Deserialize(stream, Nothing), [Object])
        stream.Close()
        Return obj
    End Using
End Function 
الرد }}}
تم الشكر بواسطة: kslawy , سعود


الردود في هذا الموضوع
RE: اذا استقبلت صورة بهذه الطريقة كيف اعطي المستخدم خيار بتحميلها او تجاهلها - بواسطة الشاكي لله - 07-04-14, 03:57 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف تصمم واجهات برامجك بطريقة الكبار .. مقدمة في تصميم واجهات المستخدم ali.alfoly 11 7,784 09-10-25, 08:24 AM
آخر رد: مصمم هاوي
  مساعدة في تمرير اسم المستخدم سيد أحمد 3 961 01-07-25, 12:51 AM
آخر رد: أبو خالد الشكري
  إدراج صورة الموظف من خلال رابط في حقل من قاعدة البيانات saud1004 4 548 13-12-24, 04:48 AM
آخر رد: saud1004
  كيف يمكن اضافة عناصر للكومبوبوكس اثناء تشغيل البرنامج عن طريق المستخدم haithammoftah 3 2,168 30-09-24, 12:52 AM
آخر رد: asmarsou
Lightbulb [سؤال] تحويل صورة الى ملف Pdf ackore 8 777 27-09-24, 07:51 PM
آخر رد: محمد مسافر
  اضافة صورة مخزنة في قاعدة البيانات sql الى الكريستال ريبورت صالح عبدالله 3 478 24-09-24, 09:52 AM
آخر رد: صالح عبدالله
  [كود] كود عند اختيار صورة في فورم تسمع في فورم اخري Mostafa201255411 0 252 13-09-24, 09:20 PM
آخر رد: Mostafa201255411
  التعامل مع موقع ويب لجلب صورة لالفيجوال بيزك صبري زينوبي 3 456 09-09-24, 11:22 PM
آخر رد: Taha Okla
  أريد معرفة الطريقة ؟! saud1004 2 366 26-07-24, 12:15 PM
آخر رد: saud1004
  ماهي طريقة تحويل ملف pdf الى صورة جيولوجي مبتدئ 3 569 12-07-24, 09:22 PM
آخر رد: atefkhalf2004

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم