goldpower
جمعه 20 مرداد 1391, 23:57 عصر
از دوستان کی می تونه از روی کدهای زیر یه نمونه برنامه ( UDP ( server & client بنویسه ؟؟؟
#Region "Imports"
Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
#End Region
Public Class xSock
#Region "Declares"
Private mState As Integer
Private tcpServer As TcpListener
Private tcpsClient As New TcpClient()
Private UDP_Client As New UdpClient()
#End Region
#Region "Events"
'Public Event Close()
Public Event ClosedByRemote()
Public Event Connected()
Public Event DataArrival(ByVal Data As String)
Public Event Sock_Error(ByVal Description As String)
'Public Event SendComplete()
'Public Event SendProgress()
#End Region
#Region "Enums"
Public Enum Status
Disconnected = 0
Listening = 1
Connected = 3
Connecting = 2
End Enum
#End Region
#Region "Properties"
Public ReadOnly Property State() As Status
Get
State = mState
End Get
End Property
#End Region
' Methods '
#Region "UDP"
Public Sub UDP_Send(ByVal Host As String, ByVal Port As Integer, ByVal Data As String)
Try
' Select remote host and port
UDP_Client.Connect(Host, Port)
' Send data
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(Data)
UDP_Client.Send(sendBytes, sendBytes.Length)
GetUDPData(UDP_Client)
Catch e As Exception
RaiseEvent Sock_Error(e.ToString)
End Try
End Sub
Public Sub UDP_Listen(ByVal Port As Integer)
Try
' Open Port
Dim UDP_Server As UdpClient
UDP_Server = New UdpClient(Port)
GetUDPData(UDP_Server)
Catch e As Exception
RaiseEvent Sock_Error(e.ToString)
End Try
End Sub
Private Sub GetUDPData(ByVal UDP_Server As UdpClient)
Try
' recieving data
Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
Dim RData = Encoding.ASCII.GetString(UDP_Server.Receive(Remote IpEndPoint))
RaiseEvent DataArrival(RData)
GetUDPData(UDP_Server)
Catch e As Exception
RaiseEvent Sock_Error(e.ToString)
GetUDPData(UDP_Server)
End Try
End Sub
#End Region
End Class
#Region "Imports"
Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
#End Region
Public Class xSock
#Region "Declares"
Private mState As Integer
Private tcpServer As TcpListener
Private tcpsClient As New TcpClient()
Private UDP_Client As New UdpClient()
#End Region
#Region "Events"
'Public Event Close()
Public Event ClosedByRemote()
Public Event Connected()
Public Event DataArrival(ByVal Data As String)
Public Event Sock_Error(ByVal Description As String)
'Public Event SendComplete()
'Public Event SendProgress()
#End Region
#Region "Enums"
Public Enum Status
Disconnected = 0
Listening = 1
Connected = 3
Connecting = 2
End Enum
#End Region
#Region "Properties"
Public ReadOnly Property State() As Status
Get
State = mState
End Get
End Property
#End Region
' Methods '
#Region "UDP"
Public Sub UDP_Send(ByVal Host As String, ByVal Port As Integer, ByVal Data As String)
Try
' Select remote host and port
UDP_Client.Connect(Host, Port)
' Send data
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(Data)
UDP_Client.Send(sendBytes, sendBytes.Length)
GetUDPData(UDP_Client)
Catch e As Exception
RaiseEvent Sock_Error(e.ToString)
End Try
End Sub
Public Sub UDP_Listen(ByVal Port As Integer)
Try
' Open Port
Dim UDP_Server As UdpClient
UDP_Server = New UdpClient(Port)
GetUDPData(UDP_Server)
Catch e As Exception
RaiseEvent Sock_Error(e.ToString)
End Try
End Sub
Private Sub GetUDPData(ByVal UDP_Server As UdpClient)
Try
' recieving data
Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
Dim RData = Encoding.ASCII.GetString(UDP_Server.Receive(Remote IpEndPoint))
RaiseEvent DataArrival(RData)
GetUDPData(UDP_Server)
Catch e As Exception
RaiseEvent Sock_Error(e.ToString)
GetUDPData(UDP_Server)
End Try
End Sub
#End Region
End Class