נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: Socket ב-VB.NET

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
Nimce
משתמש מתחיל
משתמש מתחיל
סמל אישי

הצטרף / הצטרפה: 24 July 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 10
נשלח בתאריך: 27 September 2007 בשעה 15:22 | IP רשוּם
ציטוט Nimce

היי,
יש לי כמה שאלות בסוקטים ב-VB.NET:
1. מה הפקודה BIND עושה?
2. לאחר שיצרתי סוקט מאזין בפורט מסוים,ונוצרה התחברות על ידי BeginAccept ו-EndAccept נוצר לי סוקט חדש,
הסוקט עובד בסדר,רק מה שאני לא מבין זה איך עדיין אפשר להשתמש בפורט? (הרי הסוקט שנוצר עם הפקודה EndAccept יוצר סוקט חדש), לדוגמא אם אני אחזיר את הפורט המאזין להאזנה שוב,הוא יעבוד,והוא יוצר עוד סוקטים בהתחברות (עם הפקודה EndAccept).
תודה רבה!
למי שלא הבין,הנה הקוד:

קוד:


Imports System.Net
Imports System.Net.Sockets
Module Server
    Dim some(1) As Socket
    Dim sck As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
    Sub Main()
        Dim myip As IPAddress = IPAddress.Parse("127.0.0.1")
        Dim myep As EndPoint = New IPEndPoint(myip, 1234)
        sck.Bind(myep)
        sck.Listen(1)
        WaitForConnection(sck)
        Console.ReadKey()
    End Sub
    Sub AcceptConnection(ByVal CBack As IAsyncResult)
        Dim a As Socket = CType(CBack.AsyncState, Socket)
        ReDim Preserve some(some.Length)
        some(some.Length - 1) = a.EndAccept(CBack)
        Send("Check", some(some.Length - 1))
        WaitForConnection(CType(CBack.AsyncState, Socket))
    End Sub
    Sub WaitForConnection(ByRef sock As Socket)
        sock.BeginAccept(AddressOf AcceptConnection, sock)
    End Sub
    Sub Send(ByVal text As String, ByRef sock As Socket)
        Dim bytes(text.Length) As Byte
        bytes = System.Text.Encoding.UTF8.GetBytes(text)
        sock.BeginSend(bytes, 0, bytes.Length, SocketFlags.None, AddressOf SendComplete, sock)
    End Sub
    Sub SendComplete(ByVal CBack As IAsyncResult)
        CType(CBack.AsyncState, Socket).EndSend(CBack)
    End Sub
    Sub ConnectRequest(ByVal CBack As IAsyncResult)
        Dim wsk As Socket = CType(CBack.AsyncState, Socket).EndAccept(CBack)
    End Sub
End Module


וגם עוד משהו לציין, בדקתי את זה בעזרת TELNET..
תודה רבה על העזרה.
חזרה לתחילת העמוד הצג את כרטיס החבר של Nimce חפש הודעות אחרות של Nimce
 
נמרוד
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 28 September 2007 בשעה 14:09 | IP רשוּם
ציטוט נמרוד

מישהו???
חזרה לתחילת העמוד הצג את כרטיס החבר של נמרוד חפש הודעות אחרות של נמרוד בקר בדף הבית של נמרוד
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 28 September 2007 בשעה 14:23 | IP רשוּם
ציטוט shoshan

BIND כמו שאתה רואה אומרת לסוקט איפהה הוא מקשיב / לאן הוא מתחבר.

ומה זאת אומרת מה אפשר לעשות ?

לשלוח ולקבל מידע.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה