관리 메뉴

안까먹을라고 쓰는 블로그

[VB6.0] VB_Socket통신 (Client) 본문

Language/VB 6.0

[VB6.0] VB_Socket통신 (Client)

YawnsDuzin 2012. 9. 1. 18:51

 

반응형

※구성요소 항목에 "Microsoft Winsock Control 6.0"을 추가해줘야 Winsock컨트롤이 나타납니다

 

Client의 개념은 Socket - Protocol / RemoteHost / RemotePort를 설정하시고 Listen상태의 서버에 Connect를

하시고, Server에서 Accept를 해주면 Winsock1_Connect이벤트가 발생됩니다. 이러면 연결은 완료가 된것이고,

Client로 부터 연결요청이 오면 Winsock1_ConnectionRequest 이벤트가 발생되서 Winsock1.Accept를 해주면

Server로부터 수신데이터가 오면 Winsock1_DataArrival이벤트가 발생되고, 송신은 Winsock1.SendData를 이용해서 보내시면 됩니다.

 

' Socket통신 연결버튼
Private Sub btnConnect_Click()
    ' 서버가 닫혀있으면..
    If Winsock1.State = 0 Then
        btnConnect.Caption = "Send"
        Winsock1.Protocol = sckTCPProtocol
        Winsock1.RemoteHost = txtIP.Text
        Winsock1.RemotePort = CLng(txtPort.Text)
        Winsock1.Connect
    ' 서버가 열려있으면..
    ElseIf Winsock1.State = 7 Then
        Winsock1.SendData Text1.Text
        List1.AddItem "Send : " & Text1.Text
    End If
End Sub
 
' Socket통신 종료버튼
Private Sub btnDisConnect_Click()
    ' 서버가 열려있으면..
    If Winsock1.State = 7 Then
        Winsock1.Close
        btnConnect.Caption = "Connect"
    ' 서버가 닫혀있으면..
    ElseIf Winsock1.State = 0 Then
        MsgBox "Already DisConnect.!", vbOKOnly, ""
    End If
End Sub
 
' Server로부터 Accept가 되면 발생되는 이벤트
Private Sub Winsock1_Connect()
    List1.AddItem "접속되었습니다."
End Sub
 
' Client로부터 데이터수신이 되면 발생되는 이벤트
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim buf As String
    Winsock1.GetData buf
    
    If Trim(buf) = "[close]" Then
        Winsock1.Close
    End If
    
    List1.AddItem "Receive : " & buf
End Sub


반응형
Comments