TCP-соединение с машиной через Ethernet с использованием vb.net

Я хочу сделать простое приложение formapp, используя vb.net для отправки строк ASCII на машину, которая отвечает после каждой команды. т.е., если я отправлю «AA», он ответит «123».

Я уже могу открыть причину подключения, если я проверю соединение с гипертерминалом, он говорит, что порт уже используется. Тем не менее, когда я отправляю команды, у меня нет ответа.

Я как бы адаптировал коды шаблонов для чата сервер/клиент с tcp:

Imports System.Net.Sockets
Imports System.Threading 

Dim Listener As New TcpListener(65535)
Dim Client As New TcpClient
Dim Message As String = "

Private Sub Timer1_Tick(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Timer1.Tick
If Listener.Pending = True Then
    Message = ""
Client = Listener.AcceptTcpClient()

Dim Reader As New StreamReader(Client.GetStream())
While Reader.Peek > -1
    Message = Message + Convert.ToChar(Reader.Read()).ToString
End While
RichTextBox1.ForeColor = Color.Black
RichTextBox1.Text += Message + vbCrLf
End Sub

Private Sub btnSend_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnSend.Click
If txtName.Text = "" Or cmbAddress.Text = "" Then
    MessageBox.Show("All Fields must be Filled", _
                    "Error", _
                    MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
    Try
        Client = New TcpClient(cmbAddress.Text, 65535)

        Dim Writer As New StreamWriter(Client.GetStream())
        Writer.Write(txtName.Text & " Says:  " & txtmessage.Text)
        Writer.Flush()

        RichTextBox1.Text += (txtName.Text & " Says:  " & txtmessage.Text) + vbCrLf
        txtmessage.Text = ""
    Catch ex As Exception
        Console.WriteLine(ex)
        Dim Errorresult As String = ex.Message
        MessageBox.Show(Errorresult & vbCrLf & vbCrLf & _
                        "Please Review Client Address", _
                        "Error Sending Message", _
                        MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try

End If
End Sub

есть ли лучший способ сделать это? я читал о .net.sockets, но я не мог выбраться из этого.

а в руководствах ничего не сказано о том, как работает машина. если это клиент, сервер, хост... кто-нибудь может мне помочь? Спасибо !


person noidea    schedule 18.02.2016    source источник
comment
В MSDN есть полное решение с использованием синхронных и асинхронных сокетов. Просто скопируйте и вставьте этот код: msdn.microsoft. com/en-us/library/w89fhyex(v=vs.110).aspx   -  person Matt Wilko    schedule 18.02.2016
comment
Как только я использую простой протокол запроса/ответа (не требует одновременного приема и отправки и может обрабатываться в одном потоке), какой из них мне следует использовать? я думаю, оба будут работать в любом случае (если мне удастся заставить их работать в windowsform)   -  person noidea    schedule 18.02.2016
comment
вы можете использовать мою библиотеку с открытым исходным кодом. griffinframework.net/doc/networking   -  person jgauffin    schedule 18.02.2016
comment
@jgauffin не знаю как, но я попал туда раньше! дело в том, что я не знаю, как это реализовать. мне все равно нужно строить сервер? потому что я хочу установить соединение между машиной и ПК, и машина принимает любое соединение в этом порту. вроде мне это не нужно..   -  person noidea    schedule 18.02.2016