( * 혼자 서버 클라이언트 연습하다 서버 연결할때 안나던 디버그가 날 경우 LSM 소켓 서버가 꺼져있는지 확인!)
서버를 켜준 후 클라이언트와 연결
'' Ip, Port창을 placehorder와 같이 커서가 올라가면 Text창 안의 문구를 지워줌
Dim msText As String
Dim nsText As String
'' 닫기 버튼
Private Sub ExitBtn_Click()
Me.Hide
End Sub
Private Sub Form_Load()
msText = IpTxt.Text
nsText = PortTxt.Text
End Sub
'' 텍스트박스에 포커스가 가면 빈칸으로 변경
Private Sub IpTxt_GotFocus()
IpTxt.Text = ""
End Sub
Private Sub PortTxt_GotFocus()
PortTxt.Text = ""
End Sub
'' 텍스트 박스에서 포커스가 벗어나면 기존 문구 출력
Private Sub IpTxt_LostFocus()
If IpTxt.Text = "" Then
IpTxt.Text = msText
End If
End Sub
Private Sub PortTxt_LostFocus()
If PortTxt.Text = "" Then
PortTxt.Text = nsText
End If
End Sub
Private Sub ConnectBtn_Click()
If ConnectBtn.Caption = "서버시작" Then
Winsock1.Protocol = sckTCPProtocol
Winsock1.LocalPort = CLng(PortTxt.Text)
Winsock1.Listen
ConnectBtn.Caption = "Send"
Label1.Caption = "서버 동작 중!!"
List1.AddItem "접속되었습니다"
Else
'' Winsock1.SendData Text1.Text '' Text1에 적힌 내용을 전송
'' List1.AddItem "Send : " & Date & " " & Time & " " & Text1.Text
'' Text1.Text = ""
AddList ("")
End If
End Sub
'' Socket통신 종료버튼
Private Sub DisConnectBtn_Click()
Winsock1.Close
ConnectBtn.Caption = "서버시작"
Label1.Caption = "서버 동작 중지"
List1.AddItem "접속이 끊겼습니다"
End Sub
'' Client연결이 끊어지면 발생하는 이벤트
Private Sub Winsock1_Close()
Winsock1.Close
Winsock1.Listen
List1.AddItem "클라이언트 연결이 끊겼습니다"
End Sub
'' Client로부터 연결 요청이 오면 발생하는 이벤트
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then
Winsock1.Close
Winsock1.Accept requestID
List1.AddItem "클라이언트 연결이 되었습니다"
End If
End Sub
'' Client로부터 데이터수신이 되면 발생하는 이벤트
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim buf$
Winsock1.GetData buf
If Trim(buf) = "[close]" Then
Winsock1.Close
ConnectBtn.Caption = "서버시작"
End If
List1.AddItem "Receive : " & Date & " " & Time & " " & buf
End Sub
'' Text1에 내용 입력 후 엔터키 누를 시 서버로 데이터 전송
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
On Error GoTo err
Dim strMsg$
If KeyCode = 13 Then '' 13이 엔터를 의미
AddList (strMsg)
End If
err:
If err <> 0 Then
Call MsgBox(err.Description)
End If
End Sub
Private Sub SendTxt(ByVal txt As String)
On Error GoTo err
txt = Trim(txt)
Winsock1.SendData txt
err:
If err <> 0 Then
Call MsgBox(err.Description)
End If
End Sub
'' SendTxt를 공통으로 사용하기 위해서(Enter눌러서 보낼때와 Send버튼을 눌렀을때 동일 기능)
Private Sub AddList(AddText As String)
strMsg = Text1.Text
Call SendTxt(strMsg)
List1.AddItem "Send : " & Date & " " & Time & " " & strMsg
Text1.Text = ""
End Sub
'VB' 카테고리의 다른 글
[VB6.0] Serial포트를 통해 Spread에 데이터 뿌려주기 (0) | 2022.05.24 |
---|---|
[VB6.0] 아스키코드(ASCII) 변환 (0) | 2022.05.24 |
[VB6.0] Socket Client(소켓 클라이언트) (0) | 2022.05.18 |
[VB6.0] Serial 포트 (0) | 2022.05.16 |
[VB.NET] TreeView (0) | 2022.05.13 |
댓글