The UDPChat-Server Source(VB.NET)
'I use Winsock Control SP5(VB6)
Public Class frmMain
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写处置以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意:以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents txtChatLog As System.Windows.Forms.TextBox
Friend WithEvents pelSaid As System.Windows.Forms.Panel
Friend WithEvents txtSaid As System.Windows.Forms.TextBox
Friend WithEvents btnSend As System.Windows.Forms.Button
Friend WithEvents sckServer As AxMSWinsockLib.AxWinsock
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmMain))
Me.txtChatLog = New System.Windows.Forms.TextBox()
Me.pelSaid = New System.Windows.Forms.Panel()
Me.btnSend = New System.Windows.Forms.Button()
Me.txtSaid = New System.Windows.Forms.TextBox()
Me.sckServer = New AxMSWinsockLib.AxWinsock()
Me.pelSaid.SuspendLayout()
CType(Me.sckServer, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'txtChatLog
'
Me.txtChatLog.Dock = System.Windows.Forms.DockStyle.Top
Me.txtChatLog.Multiline = True
Me.txtChatLog.Name = "txtChatLog"
Me.txtChatLog.ReadOnly = True
Me.txtChatLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.txtChatLog.Size = New System.Drawing.Size(392, 328)
Me.txtChatLog.TabIndex = 0
Me.txtChatLog.TabStop = False
Me.txtChatLog.Text = ""
'
'pelSaid
'
Me.pelSaid.Controls.AddRange(New System.Windows.Forms.Control() {Me.btnSend, Me.txtSaid})
Me.pelSaid.Dock = System.Windows.Forms.DockStyle.Bottom
Me.pelSaid.Location = New System.Drawing.Point(0, 332)
Me.pelSaid.Name = "pelSaid"
Me.pelSaid.Size = New System.Drawing.Size(392, 34)
Me.pelSaid.TabIndex = 1
'
'btnSend
'
Me.btnSend.Location = New System.Drawing.Point(296, 5)
Me.btnSend.Name = "btnSend"
Me.btnSend.Size = New System.Drawing.Size(80, 24)
Me.btnSend.TabIndex = 0
Me.btnSend.Text = "Send"
'
'txtSaid
'
Me.txtSaid.Location = New System.Drawing.Point(8, 6)
Me.txtSaid.Name = "txtSaid"
Me.txtSaid.Size = New System.Drawing.Size(280, 21)
Me.txtSaid.TabIndex = 0
Me.txtSaid.Text = ""
'
'sckServer
'
Me.sckServer.Enabled = True
Me.sckServer.Location = New System.Drawing.Point(16, 8)
Me.sckServer.Name = "sckServer"
Me.sckServer.OcxState = CType(resources.GetObject("sckServer.OcxState"), System.Windows.Forms.AxHost.State)
Me.sckServer.Size = New System.Drawing.Size(28, 28)
Me.sckServer.TabIndex = 2
'
'frmMain
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(392, 366)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.sckServer, Me.pelSaid, Me.txtChatLog})
Me.MaximizeBox = False
Me.MaximumSize = New System.Drawing.Size(400, 400)
Me.MinimumSize = New System.Drawing.Size(400, 400)
Me.Name = "frmMain"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "UDPChat-Server"
Me.pelSaid.ResumeLayout(False)
CType(Me.sckServer, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
#Region "Winsock Event"
Private Sub sckServer_ConnectionRequest(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_ConnectionRequestEvent) Handles sckServer.ConnectionRequest
txtChatLog.AppendText("Request of Connecting from " & e.requestID & vbCrLf)
txtChatLog.AppendText("Request Accepted...." & vbCrLf)
sckServer.Accept(e.requestID)
sckServer.SendData("Connection Accepted...." & vbCrLf)
End Sub
Private Sub sckServer_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles sckServer.DataArrival
Dim objData As Object
sckServer.GetData(objData, vbString)
txtChatLog.AppendText("Client: " & CStr(objData) & vbCrLf)
End Sub
#End Region
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sckServer.RemoteHost = "127.0.0.1"
sckServer.RemotePort = 8000
sckServer.Bind(1000)
txtChatLog.AppendText("Binded to localhost at 1000 and Remote port 8000" & vbCrLf)
End Sub
Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
If txtSaid.Text.Trim = "" Then
MsgBox("Please input the chat the contents", MsgBoxStyle.OKOnly, "UDPChat-Server")
Exit Sub
End If
Try
txtChatLog.AppendText("Server: " & txtSaid.Text & vbCrLf)
sckServer.SendData(CType(txtSaid.Text, Object))
txtSaid.Text = ""
Catch
MsgBox("Error Occured " & Err.Description & vbCrLf & Err.Number, MsgBoxStyle.OKOnly, "UDPChat-Server")
End Try
End Sub
Private Sub txtSaid_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSaid.KeyPress
If (e.KeyChar = Chr(13)) Then
btnSend_Click(sender, New System.EventArgs())
End If
End Sub
End Class
The UDPChat-Client Source(VB.NET)
'I use Winsock Control SP5(VB6)
Public Class frmMain
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写处置以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意:以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents pelSaid As System.Windows.Forms.Panel
Friend WithEvents btnSend As System.Windows.Forms.Button
Friend WithEvents txtSaid As System.Windows.Forms.TextBox
Friend WithEvents txtChatLog As System.Windows.Forms.TextBox
Friend WithEvents sckClient As AxMSWinsockLib.AxWinsock
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmMain))
Me.pelSaid = New System.Windows.Forms.Panel()
Me.btnSend = New System.Windows.Forms.Button()
Me.txtSaid = New System.Windows.Forms.TextBox()
Me.txtChatLog = New System.Windows.Forms.TextBox()
Me.sckClient = New AxMSWinsockLib.AxWinsock()
Me.pelSaid.SuspendLayout()
CType(Me.sckClient, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'pelSaid
'
Me.pelSaid.Controls.AddRange(New System.Windows.Forms.Control() {Me.btnSend, Me.txtSaid})
Me.pelSaid.Dock = System.Windows.Forms.DockStyle.Bottom
Me.pelSaid.Location = New System.Drawing.Point(0, 332)
Me.pelSaid.Name = "pelSaid"
Me.pelSaid.Size = New System.Drawing.Size(392, 34)
Me.pelSaid.TabIndex = 2
'
'btnSend
'
Me.btnSend.Location = New System.Drawing.Point(296, 5)
Me.btnSend.Name = "btnSend"
Me.btnSend.Size = New System.Drawing.Size(80, 24)
Me.btnSend.TabIndex = 0
Me.btnSend.Text = "Send"
'
'txtSaid
'
Me.txtSaid.Location = New System.Drawing.Point(8, 6)
Me.txtSaid.Name = "txtSaid"
Me.txtSaid.Size = New System.Drawing.Size(280, 21)
Me.txtSaid.TabIndex = 0
Me.txtSaid.Text = ""
'
'txtChatLog
'
Me.txtChatLog.Dock = System.Windows.Forms.DockStyle.Top
Me.txtChatLog.Multiline = True
Me.txtChatLog.Name = "txtChatLog"
Me.txtChatLog.ReadOnly = True
Me.txtChatLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.txtChatLog.Size = New System.Drawing.Size(392, 328)
Me.txtChatLog.TabIndex = 3
Me.txtChatLog.TabStop = False
Me.txtChatLog.Text = ""
'
'sckClient
'
Me.sckClient.Enabled = True
Me.sckClient.Location = New System.Drawing.Point(16, 8)
Me.sckClient.Name = "sckClient"
Me.sckClient.OcxState = CType(resources.GetObject("sckClient.OcxState"), System.Windows.Forms.AxHost.State)
Me.sckClient.Size = New System.Drawing.Size(28, 28)
Me.sckClient.TabIndex = 4
'
'frmMain
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(392, 366)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.sckClient, Me.txtChatLog, Me.pelSaid})
Me.MaximizeBox = False
Me.MaximumSize = New System.Drawing.Size(400, 400)
Me.MinimumSize = New System.Drawing.Size(400, 400)
Me.Name = "frmMain"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "UDPChat-Client"
Me.pelSaid.ResumeLayout(False)
CType(Me.sckClient, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
#Region "Winsock Event"
Private Sub sckClient_ConnectEvent(ByVal sender As Object, ByVal e As System.EventArgs) Handles sckClient.ConnectEvent
txtChatLog.AppendText("Connected to " & sckClient.RemoteHost & vbCrLf)
txtChatLog.AppendText("Socket State is " & sckClient.SocketHandle & vbCrLf)
End Sub
Private Sub sckClient_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles sckClient.DataArrival
Dim objData As Object
sckClient.GetData(objData, vbString)
txtChatLog.AppendText("Server: " & CStr(objData) & vbCrLf)
End Sub
#End Region
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sckClient.RemoteHost = "127.0.0.1"
sckClient.RemotePort = 1000
sckClient.Bind(8000)
txtChatLog.AppendText("Bind to local Port 8000 and remote port 1000" & vbCrLf)
End Sub
Private Sub btnSend_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSend.Click
If txtSaid.Text.Trim = "" Then
MsgBox("Please input the chat the contents", MsgBoxStyle.OKOnly, "UDPChat-Client")
Exit Sub
End If
Try
txtChatLog.AppendText("Client: " & txtSaid.Text & vbCrLf)
sckClient.SendData(CType(txtSaid.Text, Object))
txtSaid.Text = ""
Catch
MsgBox("Error Occured " & Err.Description & vbCrLf & Err.Number, MsgBoxStyle.OKOnly, "UDPChat-Client")
End Try
End Sub
Private Sub txtSaid_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSaid.KeyPress
If (e.KeyChar = Chr(13)) Then
btnSend_Click(sender, New System.EventArgs())
End If
End Sub
End Class