관리 메뉴

안까먹을라고 쓰는 블로그

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

Language/VB 6.0

[VB6.0] VB_Socket통신 (Server)

YawnsDuzin 2012. 9. 1. 18:52

 

반응형

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

 

Server의 기본개념은 Socket - Protocol / LocalPort를 설정하시고 Listen상태로 대기를 하다가

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

Client와의 연결이 완료가 된것이고, Client로부터 수신데이터가 오면 Winsock1_DataArrival이벤트가 발생되고, 송신은 Winsock1.SendData를 이용해서 합니다. 그리고 Client가 연결을 종료하면 Winsock1_Close이벤트가 발생됩니다


' Socket통신 연결버튼
Private Sub btnConnect_Click()
    If btnConnect.Caption = "Listen" Then
        Winsock1.Protocol = sckTCPProtocol
        'Winsock1.Bind 9000, "192.168.10.1"
        Winsock1.LocalPort = CLng(txtPort.Text)
        Winsock1.Listen
        btnConnect.Caption = "Send"
    Else
        Winsock1.SendData Text1.Text
        List1.AddItem "Send : " & Text1.Text
    End If
End Sub
 
' Socket통신 종료버튼
Private Sub btnDisConnect_Click()
    Winsock1.Close
    btnConnect.Caption = "Listen"
End Sub
 
' Client연결이 끊어지면 발생되는 이벤트
Private Sub Winsock1_Close()
    Winsock1.Close
    Winsock1.Listen
End Sub
 
' Client로부터 연결요청이 오면 발생되는 이벤트
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    If Winsock1.State <> sckClosed Then Winsock1.Close
    Winsock1.Accept requestID
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
        btnConnect.Caption = "Listen"
    End If
        List1.AddItem "Receive : " & buf
End Sub


반응형
Comments