Ir para conteúdo
Fórum Script Brasil
  • 0

Sincronização Vb - C++


Felipe Pedroso

Pergunta

Pessoal estou com um grande problema:

Tenho 2 apps. Uma em VB6("server") e outra em C++(client). As duas estão conectadas por Winsock. A idéia é simples: minha aplicação em C++ envia uma instrução para do VB e aguarda uma resposta para poder enviar o próximo comando. O VB recebe, interpreta a instrução, executa o comando e envia uma instrução para o C++ dizendo que ele pode enviar o próximo.

A aplicação em C++ já foi inteiramente debugada e consegue receber de um programa em C++ instruções similares às enviadas pelo VB.

O problema foi encontrado na aplicação em VB. Ela recebe a instrução, interpreta, executa mas quando envia o "OK" o C++ recebe uma string vazia(""). Eu estou usando o controle Winsock para o mesmo. Segue meu código do VB (eu fiz um teste para ver se tudo estava vindo direito):

Private Sub bt_send_Click()
    Winsock1.SendData "OK"

End Sub

Private Sub Form_Load()
    
    Winsock1.LocalPort = 100
    Winsock1.Listen
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    Winsock1.Close
    Winsock1.LocalPort = 100
    Winsock1.Accept requestID
End Sub


Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim entrada As String
    
    Winsock1.GetData entrada
    lbl_txt.Caption = entrada

    bt_send_Click
End Sub

Alguém tem alguma idéia para eu sincronizar as aplicações?

Obrigado,

Felipe Pedroso

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Consegui... O pior (ou melhor) é que a solução foi simples. Segue o código para vocês também:

Em VB (recebe, executa e retorna um OK):

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim entrada As String
    
    Winsock1.GetData entrada
    txt_received.Text = txt_received.Text + entrada + vbCrLf

    Winsock1.SendData "OK"
End Sub
Em C++ (monta, envia e espera um OK):
void Send(string param1,string param2,string param3){
    string msg = param1+","+param2+","+param3;
    string ok;

    sckConn.SendLine(msg);

    do{
        ok = sckConn.ReceiveBytes();
    }while(ok!="OK");

    return;
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...