[公告] 痞客邦「應用市集」新 App 上架-iFontCloud Professional[公告] 痞客邦後台發表文章提供插入多張圖片新功能[公告]痞客邦新服務上線 部落客商店聚集就在《痞市集》[公告] 部落格「快捷功能BAR」改版介紹[公告] 痞客邦「快捷功能BAR」6月4日改版通知

TcpClientTcpClient_SourseTcpSever_Sourse    

圖片字體可能是簡體的

因為本人開發環境是簡體的

請見諒><


現在即時通訊軟體很多

如 QQ , MSN , YahooMessanger

利用VB 也可以寫出一套簡易的即時通訊軟體

先使用設定元件 Microsoft Winsock Control 6.0(SP6)

設定使用元件在 VB功能表->專案->設定使用元件(亦可用Ctrl+T)

以下是Winsock的介紹︰

WinSock的全名是 Windows Socket,是定義介於Windows TCP/IP application

Client 與 TCP/IP 的protocol stack之間的一項標準介面。程式設計者於Windows上所

寫的網路軟體(如Gopher,Telnet,FTP..), 只要支援WinSock的規格,他就不需要顧慮所

使用的網路卡是那家廠牌,因為Winsock所提供的程式庫Winsock.DLL會負起與網路底層

溝通的工作。進而使得設計者能設計出更多功能或更user friendly的網路軟體。

一個網路聊天程序

需要 客戶端,服務端

相信這兩者不需要介紹了^^

以下是客戶端代碼

我們添加兩個文本框

命名為 : Send 、Output

一個Winsock

命名為: tcpClient

兩個按鈕

Private Sub Command1_Click()

tcpClient.SendData Send.Text '將Send.Text文本框傳送至指定ip

End Sub

 

Private Sub Command2_Click()

tcpClient.Connect ' 與服務端連線

End Sub

 

Private Sub Form_Load()

tcpClient.Protocol = sckTCPProtocol '將通訊協定設為TCP協定

tcpClient.RemotePort = 10 '打開10端口

tcpClient.RemoteHost = "127.0.0.1" '服務端ip ,127.0.0.1 = 本機

End Sub

 

利用DataArrival事件 處理 接收到的數據

Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)

Dim Data As String '宣告變數Data 為字符串

tcpClient.GetData Data '將接收到的資料 放入Data 這個變數

Output.Text = Data '將Data 輸入進 Output 文本框

End Sub

 

客戶端架設好了

可以來寫服務端內容了

一個按鈕

添加兩個文本框

命名為 Send 、Output

一個Winsock

命名為: tcpSever

 

 

Private Sub Form_Load()

tcpServer.LocalPort = 10 '設置本機端口 要與客戶端一致

tcpServer.Listen '監聽端口

End Sub

 

 

利用ConnectionRequest事件 來接收來自客戶端的連線請求

Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)

//准許連接

If tcpServer.State <> sckClosed Then

tcpServer.Close

tcpServer.Accept requestID

End If

End Sub

利用DataArrival事件 處理接收到的數據

Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)

Dim Data As String '宣告變數Data為字符串

tcpServer.GetData Data '接收到的資料傳入變數 Data裡

Output.Text =Output.Text & Data '將資料傳入 Output.Text裡

End Sub

 

Private Sub Command1_Click()

tcpServer.SendData Send.Text '將Send.Text 傳送至遠程電腦

End Sub

 

 

一個簡單的網路 1 vs 1 聊天程序 就寫出來啦

 PS: 若覺得寫的好 就支持一下吧XDD

Posted by pua0156k at 痞客邦 PIXNET 留言(2) 引用(0) 人氣()


open trackbacks list Trackbacks (0)

留言列表 (2)

Post Comment
  • Private Comment
  • 小明
  • 請問 1.'State' 在 'AxMSWinsockLib.AxWinsock' 中為型別,無法當做運算式使用。
    這邊要怎麼更改為不是類別 ,小弟還是VB新手 ,請見諒>"<

You haven’t logged in yet, please use guest status to leave message. You can also log in with above service account and leave message

other options

You haven’t logged in yet, please use guest status to leave message. You can also log in with above service account and leave message

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

Please input verification code on left:

Cannot understand, change to another image

請輸入驗證碼