0

MSWinsock に問題があります。問題は次のとおりです。複数の Winsock コントロールを備えた VB.NET アプリケーションがあり、それらはすべて同時に動作しますが、それらすべてがデータ (Obj.Senddata(data)) を送信すると、データそれらのいくつかは、反対側で復活しませんでした。

何が問題ですか?

4

1 に答える 1

1
Private Function PublishTemplateToTerminal()

    lblStatus.Text = "Publish in progress..."

    Dim DataToSend As String

    DataToSend = CType(Me.ParentForm, PublishTemplate).ALFullTemplateDetails.Item(Index)
    Index += 1
    Winsock.SendData(DataToSend)
    Application.DoEvents()

End Function

Private Sub Winsock_DataArrival(ByVal sender As System.Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Winsock.DataArrival

    Dim Msg As String = ""

    Winsock.GetData(Msg)
    ReceivedData &= Msg

    If ReceivedData.StartsWith("#999#") = True And ReceivedData.EndsWith("#END#") = True Then

         ReceivedData = ReceivedData.Substring(5)
        ReceivedData = ReceivedData.Substring(0, ReceivedData.Length - 5)

        If ReceivedData.StartsWith("ERROR") = True Then

            Winsock.Close()

            lblStatus.Text = "Error publish template to terminal!"
            lblStatus.BackColor = Color.Red

        End If

        If ReceivedData.StartsWith("DONE") = True Then

            ProgressBar.Value += 1

            If Index < CType(Me.ParentForm, PublishTemplate).ALFullTemplateDetails.Count Then

                Dim DataToSend As String
                DataToSend = CType(Me.ParentForm, PublishTemplate).ALFullTemplateDetails.Item(Index)
                Index += 1

                Winsock.SendData(DataToSend)
                Application.DoEvents()

            Else

                Winsock.Close()

                lblStatus.Text = "Publish Complete"
                lblStatus.BackColor = Color.Green

            End If

        End If

        ReceivedData = ""

    End If

End Sub
于 2013-04-04T05:36:09.243 に答える