asa_delta
12-06-2006, 13:32
tenho a class tcpclient e tcpserver, mas ao executar a conexação a um determinado IP, com um botão ele executa o k pretendo, mas com o mesmo código noutro botao ele nao executa
Tenho a class definida da mesma forma no botao, o k muda só é a trama a enviar
Obrigado
As informações que dás são um pouco vagas mas verifica se estás a colocar o código no evento certo.
De qualquer modo, o que é uma "conexação" ?? :)
asa_delta
12-06-2006, 16:30
o código k tenho para activar é:
Protected Sub cmdligar_1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdligar_1.Click
Dim strEnviar2 As Integer
Dim tcpClient As New System.Net.Sockets.TcpClient()
tcpClient.Connect("172.16.1.91", 4001)
Dim networkStream As NetworkStream = tcpClient.GetStream()
If networkStream.CanWrite And networkStream.CanRead Then
' Do a simple write.
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("@00WD1200020052*" & vbCr)
networkStream.Write(sendBytes, 0, sendBytes.Length)
' Read the NetworkStream into a byte buffer.
networkStream.Write(sendBytes, strEnviar2, 16)
Dim bytes(tcpClient.ReceiveBufferSize) As Byte
networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
' Output the data received from the host to the console.
Dim returndata As String = Encoding.ASCII.GetString(bytes)
Console.WriteLine(("Host returned: " + returndata))
tcpClient.Close()
Else
If Not networkStream.CanRead Then
Console.WriteLine("cannot not write data to this stream (não podem escrever dados a este córrego )")
tcpClient.Close()
Else
If Not networkStream.CanWrite Then
Console.WriteLine("cannot read data from this stream (não podem os dados lidos deste córrego )")
tcpClient.Close()
End If
End If
End If
End Sub
este é o código do botao ligar
para o botao "desligar" tenho a mesma coisa só muda a trama a enviar ao IP, tenho a certeza k a trama está correcta pois tenho esta aplicação a funcionar correctamente em VB,
só não estou a perceber porque raio não esta a enviar a trama, será por pedir uma ligação a este IP e á mesma porta (4001) tendo tendo já esta sido efectuada ?
Obrigado
Galbne_PT
12-06-2006, 19:25
Boas,
Como o MaTreCo diz, verifica se estas a xamar o codigo no evento certo, breakpoints dão mt jeito essas alturas :P
Cumps
asa_delta
12-06-2006, 19:29
ja verifiquei tudo, até já pessoal amigo já tentou ver, e ninguém consegue verificar onde está o gato
8o
iznougud
13-06-2006, 13:32
que erro é que ele dá exactamente?
asa_delta
13-06-2006, 17:36
o erro k dá é:
System.Net.Sockets.SocketError.ConnectionRefused
já procurei e nada
obrigado
Está alguma coisa á espera de ligação nessa porta?
Está algum tipo de fw a barrar a port?
btw o q raio é "córrego"
Estás a fechar o tcpclient do lado do servidor ?? Se executares primeiro o código do outro botão tb n dá ??
asa_delta
14-06-2006, 11:27
ele dar dá, mas só executa o comando da primeira vez em k tu executas o processo, qd fores a fazer da segunda vez, é k o gajo já não comunica com o IP, acho k deve ser a porta no terminal server que deve ficar barrada e não envia o comando
obrigado