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 
|