真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vbnet聊天源碼 vb聊天代碼

VB Winsock最簡單的;聊天程序源代碼

這個是我以前學(xué)習(xí)的一個實例。希望對你有幫助!??!

創(chuàng)新互聯(lián)建站是一家專業(yè)從事網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,創(chuàng)新互聯(lián)建站依托強大的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!

用VB實現(xiàn)客戶——服務(wù)器(TCP/IP)編程實例

-

現(xiàn)在大多數(shù)語言都支持客戶-服務(wù)器模式編程,其中VB給我們提供了很好的客戶-服務(wù)器編程方式。下面我們用VB來實現(xiàn)TCP/IP網(wǎng)絡(luò)編程。

TCP/IP協(xié)議是Internet最重要的協(xié)議。VB提供了WinSock控件,用于在TCP/IP的基礎(chǔ)上進行網(wǎng)絡(luò)通信。當(dāng)兩個應(yīng)用程序使用Socket進行網(wǎng)絡(luò)通信時,其中一個必須創(chuàng)建Socket服務(wù)器偵聽,而另一個必須創(chuàng)建Socket客戶去連接服務(wù)器。這樣兩個程序就可以進行通信了。

1.創(chuàng)建服務(wù)器,首先創(chuàng)建一個服務(wù)端口號。并開始偵聽是否有客戶請求連接。

建立一窗體,并向其增加一個Winsock控件(可在工程菜單中的部件項來添加此控件)

添加兩文本框Text1,Text2,和一按鈕Command1

Private Sub Form_Load()

SockServer.LocalPort = 2000 ′服務(wù)器端口號,最好大于1000

SockServer.Listen ′開始偵聽

End Sub

Private Sub Form_Unload(Cancel As Integer)

SockServer.Close

End Sub

Private Sub SockServer_Close()

SockServer.Close

End Sub

Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)

SockServer.Close

SockServer.Accept requestID ′表示客戶請求連接的ID號

End Sub

′當(dāng)客戶向服務(wù)器發(fā)送數(shù)據(jù)到達后,產(chǎn)生DataArrival事件,在事件中接收數(shù)據(jù),GetData方法接收數(shù)據(jù)。

Private Sub SockServer_Data

Arrival(ByVal bytesTotal As Long)

Dim s As String

SockServer.GetData s

Text1.Text = s

End Sub

當(dāng)我需要向客戶發(fā)送數(shù)據(jù)時,只需調(diào)用SendData方法。

Private Sub Command1_Click()

SockServer .SendData Text2.Text

text1.text = text2.text

text2.text = ""

End Sub

2.創(chuàng)建客戶。要創(chuàng)建客戶連接服務(wù)器,首先設(shè)置服務(wù)器主機名,如IP地址、域名或計算機名,然后設(shè)置服務(wù)器端口,最后連接服務(wù)器。

建立一窗體,并向其增加一個Winsock控件(可在工程菜單中的部件項來添加此控件),取名為:SockC1。添加兩文本框Text1,Text2,和一按鈕Command1

Private Sub Form_Load()

dim my as string

my = SockCl.RemoteHostIP

SockCl.RemoteHost = my

′表示服務(wù)器主機名

SockCl.RemotePort = 2000

′表示服務(wù)器端口名

SockCl.Connect

′連接到服務(wù)器

End Sub

Private Sub Form_Unload(Cancel As Integer)

SockCl.Close

End Sub

Private Sub SockCl_Close()

SockCl.Close

End Sub

Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)

Dim s As String

SockCl.GetData s ′接收數(shù)據(jù)到文本框中

Text1.Text = s

End Sub

Private Sub Command1_Click()

SockCl.SendData Text2.Text ′向服務(wù)器發(fā)送數(shù)據(jù)

text1.text = text2.text

text2.text = ""

End Sub

3.進行通信。把這兩個窗體分別編譯成兩個EXE文件,服務(wù)器Server.exe和客戶Client.exe程序,并把它們分別安裝在服務(wù)器端和客戶端,這樣就可以實現(xiàn)兩者通信了。

------------------------------------整理后的代碼如下-------------------------------

Private Sub Form_Load()

Dim my As String

my = SockCl.RemoteHostIP

SockCl.RemoteHost = my

SockCl.RemotePort = 2000

SockCl.Connect

End Sub

Private Sub Form_Unload(Cancel As Integer)

SockCl.Close

End Sub

Private Sub SockCl_Close()

SockCl.Close

End Sub

Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)

Dim s As String

SockCl.GetData s

Text1.Text = s

End Sub

Private Sub Command1_Click()

SockCl.SendData Text2.Text

Text1.Text = Text2.Text

Text2.Text = ""

End Sub

Private Sub Form_Load()

SockServer.LocalPort = 2000

SockServer.Listen

End Sub

Private Sub Form_Unload(Cancel As Integer)

SockServer.Close

End Sub

Private Sub SockServer_Close()

SockServer.Close

End Sub

Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)

SockServer.Close

SockServer.Accept requestID

End Sub

Private Sub Command1_Click()

SockServer.SendData Text2.Text

Text1.Text = Text2.Text

Text2.Text = ""

End Sub

Private Sub SockServer_DataArrival(ByVal bytesTotal As Long)

Dim s As String

SockServer.GetData s

Text1.Text = s

End Sub

VB編寫的局域網(wǎng)聊天工具源代碼

用VB做聊天程序的方法

---- 所謂"聊天"是指兩個程序能夠發(fā)送數(shù)據(jù)給對方。這個程序涉及到數(shù)據(jù)通訊的知識,仿佛很復(fù)雜,不過,由于VB給我們提供了一個Winsock控件,問題就變得很簡單了。

---- 先編寫"聊天(主機)"程序。在窗體里添加Winsock控件,并設(shè)置其Protocol屬性為1-SckUDPProtocol,其他屬性為缺省值。接著添加兩個標(biāo)簽和兩個文本框,設(shè)置兩個標(biāo)簽的標(biāo)題屬性分別為"接收窗"和"發(fā)送窗";兩個文本框的標(biāo)題屬性為空。最后編寫代碼:

---- 1."聊天(主機)"

Private Sub Form-Load()

′設(shè)置網(wǎng)絡(luò)地址

Winsock1.LocalPort=1024

Winsock1.RemoteHost="202.96.6.1"

Winsock1.RemotePort=1999

End Sub

Private Sub Text1-Change()

′發(fā)送用戶輸入的內(nèi)容

Winsock1.SendData Text1.Text

End Sub

Private Sub Winsock1-DataArrival

(Byval bytesTotal As Long)

Dim rec As String

′接收對方數(shù)據(jù)并在文本框內(nèi)顯示

Winsock1.GetData rec, vb String

Text2.Text=rec

End Sub

---- 2."聊天(副機)"

Private Sub Form_Load()

′設(shè)置網(wǎng)絡(luò)地址

Winsock1.LocalPort=1999

Winsock1.RemoteHost="202.96.6.1"

Winsock1.RemotePort=1024

---- 其他部分程序與(主機)相同。最后將兩個程序存盤,并編譯成執(zhí)行(.Exe)文件。現(xiàn)在就可以使用這個程序進行對話了。

---- 七.文本框中文本的某一特定字符或字符串同時高亮顯示的方法

---- 由于普通TextBox控件不支持不連續(xù)字符串的同時高亮顯示,所以我們選擇RichTextBox控件。單擊工程(Project)選單項,在彈出的下拉選單中單擊組件(Components)選單項,從彈出的對話框中選擇Microsoft Rich Textbox Control 5.0復(fù)選框,確定加載RichTextBox控件。

---- 新建(New)一個工程,在窗體(Form)上添加一個RichTextBox控件和兩個Command(按鈕)控件,都采用系統(tǒng)默認(rèn)的Name屬性值;設(shè)置RichTextBox的Text屬性值為空,Command1和Command2的Caption屬性值分別設(shè)為"輸入文本"和"選擇字符串"。最后,添加如下VB代碼:

Private Sub Command1-Click()

Dim str As String

Dim Text As String

str=〃輸入文本〃

Text=InputBox(str)

RichTextBox1.Text=Text

End Sub

Private Sub Command2-Click()

Dim str As String

Dim Text As String

Dim Position As Integer

Dim Lenth As Integer

str=〃輸入要高亮顯示的字符串〃

Text=InputBox(str)

If Text 〈〉 〃〃 Then

Position=InStr(RichTextBox1.Text, Text)-1

Lenth=Len(Text)

RichTextBox1.SelStart=Position

RichTextBox1.SelLength=Lenth

RichTextBox1.SelColor=RGB(255,0,0)

Do While InStr(Position+Lenth+

1, RichTextBox1.Text, Text) 〈〉 0

Position=InStr(Position+Lenth+

1, RichTextBox1.Text, Text)-1

RichTextBox1.SelStart=Position

RichTextBox1.SelLength=Lenth

RichTextBox1.SelColor=RGB(255,0,0)

Loop

End If

End Sub

---- 按F5執(zhí)行程序,單擊"輸入文本"按鈕,在彈出的對話框中輸入一些文本,確定后,剛剛輸入的文本將顯示在RichTextBox中;再單擊"選擇字符串"按鈕,在彈出的對話框中輸入你希望高亮顯示的字符串,確定后,RichTextBox中相應(yīng)的字符串將以紅色高亮顯示。

---- 八.編程實現(xiàn)Windows 95/98操作系統(tǒng)熱啟動的方法

---- 要利用程序?qū)崿F(xiàn)系統(tǒng)的重新啟動,可以在你的程序中調(diào)用API函數(shù)來實現(xiàn)。建一個子函數(shù):(以VB為例)

Declare Function SystemParametersInfo Lib 〃

user32〃 Alias -

〃SystemParametersInfo〃 (ByVal uAction As Long,

ByVal uParam As Long,

ByVal lpvParam As Any, ByVal

fuWinIni As Long) As Long

Sub DisableCtrlAltDelete(bDisabled As Boolean)

Dim X As Long

X=SystemParametersInfo(97, bDisabled, CStr(1), 0)

End Sub

Call DisableCtrlAltDelete(true) ′禁止熱啟

Call DisableCtrlAltDelete(false) ′允許熱啟

---- 九.在Windows 95/ 98啟動后自動啟動程序的方法

---- 我們都知道在Windows 95/98的"開始"→"程序"選單下有一"啟動"選單項,當(dāng)每次啟動Windows 95或Windows 98時,系統(tǒng)都會自動啟動放在"啟動"選單欄里的可執(zhí)行程序。

---- 但目前有好多軟件,像解霸五、ICQ,以及大部分實時偵測病毒的軟件等等,安裝后,并沒有放在"啟動"選單里,也能在啟動操作系統(tǒng)時自動啟動。怎么實現(xiàn)的呢?

---- 其實只要知道Windows注冊表的一些知識,這個問題就不能稱之為問題了。用鼠標(biāo)單擊"開始",打開開始選單,再單擊"運行",出現(xiàn)一對話框,然后輸入"regedit",確定后,會打開系統(tǒng)注冊表編輯器,找到HKEY-LOCAL-MACHINE? SOFTWARE?Microsoft?Windows?CurrentVersion?Run,加入你的程序的入口,就可以了。如果不知道怎么加,就參考一下已經(jīng)存在的鍵值。

---- 十. 如何把數(shù)據(jù)文件輸出到Text控件中?如果數(shù)據(jù)量比較大,窗體滿屏也不夠大,怎么解決?

---- 有一個比較簡單的方法,就是把數(shù)據(jù)放到一個文本框(Text)里,并在其中加上水平和垂直滾動條。具體實現(xiàn)步驟為:先在窗體(Form)里加入一個文本框,采用默認(rèn)名Text1;然后,設(shè)置文本框Text1的屬性:Text屬性設(shè)置為空,MultiLine屬性設(shè)置為True,ScrollBars屬性設(shè)置為3-Both;接著添加如下VB代碼:

Private Sub Form-Load()

Dim Handle As Integer

Dim FileName As String

On Error GoTo ErrExit

begin:

′輸入要顯示的數(shù)據(jù)文件的名稱

FileName=InputBox$(〃Input Filename〃,

〃Open File〃)

On Error GoTo FileErr

Handle=FreeFile

Open FileName For Input As #Handle

′把數(shù)據(jù)文件中的數(shù)據(jù)輸出到文本框中

Text1.Text=Input$(LOF(Handle), Handle)

Close #Handle

Exit Sub

FileErr:

Dim ErrNum As Integer

If Err.Number=53 Then

ErrNum=MsgBox(〃File not exist〃,

vbOKCancel, 〃Error Information〃)

If ErrNum=1 Then

GoTo begin

Else

Exit Sub

End If

End If

MsgBox Err.Description, , 〃file open failed〃

ErrExit:

Exit Sub

End Sub

′使文本框充滿整個窗體

Private Sub Form-Resize()

Text1.Left=0

Text1.Top=0

Text1.Width=Form1.Width-100

Text1.Height=Form1.Height-400

End Sub

---- 通過這樣的處理,不僅能解決問題,而且用戶還可以在文本框中對數(shù)據(jù)進行編輯。

---- 十一.關(guān)聯(lián)文件列表框、目錄列表框和驅(qū)動器列表框的方法

---- 想做一個對話窗體,包含驅(qū)動器列表框、目錄列表框和文件列表框,并能實現(xiàn)三者的同步操作,怎么做?這都是我們在實際應(yīng)用中經(jīng)常會遇到的問題,在VB中解決這個問題非常簡單,可以通過Path屬性的改變引發(fā)Change事件來實現(xiàn)。例如:

Sub Dir1-Change()

File1.Path=Dir1.Path

End Sub

---- 該事件過程使窗體上的目錄列表框Dir1和文件列表框File1產(chǎn)生同步。因為目錄列表框Path屬性的改變將產(chǎn)生Change事件,所以在Dir1-Change事件過程中,把Dir1.Path賦給File1.Path,就可以產(chǎn)生同步效果。類似地,增加下面的事件過程,就可以使三種列表框同步操作:

Sub Drive1-Change()

Dir1.Path=Drive1.Drive

End Sub

---- 該過程使驅(qū)動器列表框和目錄列表框同步,前面的過程使目錄列表框和文件列表框同步,從而使三種列表框同步,問題即可解決。

求個vb聊天程序源代碼

加一個WInsock1控件,兩個文本框(txtMess、txtSend)和一個按鈕,代碼如下Private Sub Command1_Click()

Winsock1.SendData txtSend.Text '發(fā)送聊天內(nèi)容

txtSend.Text = "" '聊天內(nèi)容清空

End SubPrivate Sub Form_Load()

Dim my As String

Winsock1.Protocol = sckUDPProtocol '設(shè)置為UDP協(xié)義

Winsock1.LocalPort = 60 '隨便設(shè)置,不過兩個要一樣

Winsock1.RemotePort = 60

my = Winsock1.LocalIP '取得自己的IP地址,是不要的

Winsock1.RemoteHost = my '這里應(yīng)該是改為別人計算機的IP,由于自己是單機,所以就設(shè)置成自己的,自己給自己發(fā)信息,可以拿另一臺主機試試End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '取到數(shù)據(jù)時發(fā)生

Dim Tmp As String

Winsock1.GetData Tmp, vbString '取得數(shù)據(jù)

Tmp = "對方IP地址:" + Winsock1.RemoteHostIP + "發(fā)送內(nèi)容為--" + Tmp

txtMess.Text = Tmp + Chr$(13) + Chr$(10) + txtMess.Text '換行輸出聊天信息

End Sub語句超簡單,我用了幾小時才弄出。


名稱欄目:vbnet聊天源碼 vb聊天代碼
鏈接地址:http://weahome.cn/article/ddjecip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部