掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Winsockコントロールの送信と受信 (ID:77290)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
レスありがとうございます。 以下がコードです。 <クライアントが送信> lc_strDelMsg = "Image_Delete -1" & vbCrLf With frmMain.tcpClient .SendData lc_strDelMsg End With <サーバーが受信> Private Sub SockTcpServer_DataArrival(Index As Integer, ByVal requestID As Long) ' 受信データ用の変数を宣言します。 ' GetData メソッドを呼び出し、txtOutput という名前のテキストボックスの Textプロパティに ' そのデータを設定します。 Dim strData As String Dim fchk As Boolean Dim I As Integer On Error Resume Next SockTcpServer(gb_ServerAceptMax).GetData strData ' 2003/02/14 ' リストボックスに受信メッセージを表示 Call WriteLstBox(strData) Call GB_WriteLog("クライアントからの受信 " & strData) If Err.number <> 0 Then lc_ErrNo = Err.number lc_ErrMsg = "SockTcpServer_DataArrival: 受信エラー, ErrNo = " & CStr(lc_ErrNo) Call GB_WriteLog(lc_ErrMsg) fchk = SetLastError(5) Err.Clear Exit Sub End If ' 受信中フラグ = ON gb_RcvFlg = True Call gb_SockCommunication(strData) ’ここで、返信準備に入る fchk = True End Sub <サーバーが返信> Public Function SendClientMsg(intType As String) As Boolean Dim strSendMsg As String Dim fchk As Boolean SendClientMsg = True strSendMsg = "" On Error Resume Next ' エラーのトラップを留保します。 Select Case intType Case 1: ' 1 : 成功 strSendMsg = "1" Case 0: ' 0 : 失敗 strSendMsg = "0" Case -1: ' -1 : 手動操作中 strSendMsg = "-1" Case Else: strSendMsg = "0" End Select strSendMsg = strSendMsg & vbCrLf With frmMain .SockTcpServer(gb_ServerAceptMax).SendData strSendMsg .txtRcv.Text = strSendMsg DoEvents Call GB_PrintLog("SendClientMsg 返信 : " & strSendMsg) Call GB_WriteLog("SendClientMsg 返信 : " & strSendMsg) End With End Function ・・・こんなかんじです。長くてすみません。 サーバー側のSendCompleteイベントの処理を入れると、10093番の”まず WinsockInit を呼び出す必要があります。”というエラーがでます。 サーバーからの返信がないと、返信待ちループから抜けれず、次のソケットが送信できません。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.