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

Public Class Form1
    Dim ofd As New OpenFileDialog
    Dim listener As TcpListener
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        ofd.Filter = "Jpg(*.jpg)|*.jpg|png (*.png)|*.png|gif (*.gif)|*.gif"
        If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
            Dim mypic_path As String = ofd.FileName
            PictureBox1.Image = Image.FromFile(mypic_path)
            Dim ms As MemoryStream = New MemoryStream
            PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
            Dim arrImage As Byte() = ms.GetBuffer
            ms.Close()
            Dim myclient As TcpClient = New TcpClient("192.168.1.2", 9999)

            Dim myns As NetworkStream = myclient.GetStream
            Dim mysw As BinaryWriter = New BinaryWriter(myns)
            mysw.Write(arrImage)
            mysw.Close()
            myns.Close()
            myclient.Close()
        End If

    End Sub
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        listener = New TcpListener(IPAddress.Any, "9999")
        Dim athread As New Threading.Thread(AddressOf list)
        athread.Start()
    End Sub
    Private Sub list()
        listener.Start()
    End Sub
     Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        If listener.Pending Then
            Dim mysocket = listener.AcceptSocket
            Dim myns = New NetworkStream(mysocket)
            PictureBox2.Image = Image.FromStream(myns)
        End If
    End Sub
End Class
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة:
#2
اللي اقصده مثل برامج المحادثة حين يرسل صورة يعطيه خيار بالتحميل او التجاهل
------
طيب لو حبيت انه بمجرد ان يوافق باستقبال الصورة اريدها تظهر في اداة richtextbox
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة:
#3
لإعطاء خيار التحميل من عدمه:
كود :
If listener.Pending Then
            If MessageBox.Show("A photo has been sent to you, do you want to recieve it?", "Confirmation", MessageBoxButtons.YesNo) = System.Windows.Forms.DialogResult.Yes Then
                Dim mysocket = listener.AcceptSocket
                Dim myns = New NetworkStream(mysocket)
                PictureBox2.Image = Image.FromStream(myns)
            End If
        End If

أما لإظهار صورة في RichTextBox فهناك طريقتين

السهلة:
كود :
My.Computer.Clipboard.SetImage(PictureBox2.Image)
        RichTextBox1.Paste(Windows.Forms.DataFormats.GetFormat(System.Windows.Forms.DataFormats.Bitmap))

الصعبة:
إيجاد الـFormat المناسب للكلام مع الصورة و وضعه في خاصية Rtf للـRichTextBox
الرد }}}}
تم الشكر بواسطة: سعود
#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 , سعود
#5
بارك الله فيكم جميعا اخواني الاعزاء
اخي Aly El-Haddad بالنسبة للتنصت قد يكون نص وليست صورة فكيف افرق بينهما.
لاني الان اجرب بمشروع مستقل يعني ارسل صورة واتحقق كما تفضلت الامر هنا يبدو جيدا.
لكن كيف لو حبيت اضيف كود ارسال صورة الى المشروع الاساسي بحيث التنصت على المنفذ واحد اي مسموح باجراء واحد فقط.
ارسال الصورة بلا شك ليس مدموج وانما من زر امر مستقل.
ماهي الطريقة؟
ام انها تريد حيلة Smile
ارجو الرد فبصراحة استخدام التحايلات ليس جيد.
ايضا هل يمكن استبدال مربع الرسالة بنص عادي يتم رسمه على اداة الـ Richtextbox وحين الضغط على نعم يتم السماح.
.
.
بارك الله فيكم جميعا.
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة:
#6
(08-04-14, 01:08 AM)سعود كتب : بارك الله فيكم جميعا اخواني الاعزاء
اخي Aly El-Haddad بالنسبة للتنصت قد يكون نص وليست صورة فكيف افرق بينهما.
لاني الان اجرب بمشروع مستقل يعني ارسل صورة واتحقق كما تفضلت الامر هنا يبدو جيدا.

لكن كيف لو حبيت اضيف كود ارسال صورة الى المشروع الاساسي بحيث التنصت على المنفذ واحد اي مسموح باجراء واحد فقط.
ارسال الصورة بلا شك ليس مدموج وانما من زر امر مستقل.
ماهي الطريقة؟
ام انها تريد حيلة Smile
ارجو الرد فبصراحة استخدام التحايلات ليس جيد.
ايضا هل يمكن استبدال مربع الرسالة بنص عادي يتم رسمه على اداة الـ Richtextbox وحين الضغط على نعم يتم السماح.
.
.
بارك الله فيكم جميعا.


راجع ردي جيدا
الرد }}}}
تم الشكر بواسطة: سعود
#7
اخي الشاكي بارك الله فيك اعلم انك انسان مبدع ومتبحر باي مجال تشارك به..لكن الاشكال عندي انه ليس لدي قدرة على فهم اكواد لغة اخرى غير فيجوال بيسك لكن باذن الله ساحاول معتمدا على مواقع التحويل
شكرا لك اخي
أستودعكم الله الذي لا تضيع ودائعه أرجو ان تجدوا بمشاركاتي ما يجعلكم تدعون لي بخير ان تحتم غيابي.
الرد }}}}
تم الشكر بواسطة:
#8
(08-04-14, 01:50 AM)سعود كتب : اخي الشاكي بارك الله فيك اعلم انك انسان مبدع ومتبحر باي مجال تشارك به..لكن الاشكال عندي انه ليس لدي قدرة على فهم اكواد لغة اخرى غير فيجوال بيسك لكن باذن الله ساحاول معتمدا على مواقع التحويل
شكرا لك اخي

اسف يالغالي مانتبهت يوم حطيت الكود

حولت لك الرد الى الفيجوال بيسك
الرد }}}}
تم الشكر بواسطة: سعود


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] طريقة لقص صورة في الpictureBox1 CLARO 7 127 06-12-16, 03:30 PM
آخر رد: CLARO
  كيفيه تشغيل الفورم بالتاريخ الذي يحدده المستخدم ddemed 5 130 23-11-16, 10:12 PM
آخر رد: السرور
  حفظ صورة الموظف في جدول مستقل أبووسم 3 185 18-11-16, 03:56 PM
آخر رد: أبووسم
  [VB.NET] كيفية تحميل صورة من قاعدة بيانات اكسس 2010 نوريس 2 113 09-11-16, 12:32 PM
آخر رد: نوريس
  [VB.NET] اريد إضافة صورة للموظف في جدول أخر بنفس قاعدة البيانات أبووسم 8 275 05-11-16, 12:00 PM
آخر رد: Adrees
  [سؤال] جعل المستخدم يحدد عنوان اي بي السيرفر الذي عليه قاعدة البيانات thevirus 0 58 04-11-16, 10:38 AM
آخر رد: thevirus
  ;كيف اضع صورة لخلفية ريتش بوكس samira20 3 133 27-10-16, 07:22 AM
آخر رد: samira20
Information [VB.NET] طريقة عمل مربع حوار يعمل على ادخال صورة إلى قاعدة البيانات thevirus 1 77 24-10-16, 01:49 PM
آخر رد: Adrees
Smile [VB.NET] كيف يمكن عمل كشف حساب بشكل تفصيلي مرفق صورة توضيحية MH mekawy 0 111 16-10-16, 07:12 PM
آخر رد: MH mekawy
  هام وعاجل .... كيف يمكن عمل كشف حساب بشكل تفصيلي مرفق صورة توضيحية MH mekawy 0 138 16-10-16, 04:40 PM
آخر رد: MH mekawy

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


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